指针二维数组函数最大值(用函数求一个二维数组的最大值及其行下标和列下标)

:暂无数据 2026-07-31 23:30:02 :0

指针二维数组函数最大值(用函数求一个二维数组的最大值及其行下标和列下标)

本篇文章给大家谈谈指针二维数组函数最大值,以及用函数求一个二维数组的最大值及其行下标和列下标对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

用函数求一个二维数组的最大值及其行下标和列下标

两处错误:
1. 返回函数内的局部变量。函数内局部变量在函数返回后就不再有效了。换成static.
2.输出的应该是p.
给你改过了。
结果测试:
输入二维数组的行数和列数
2 3
输入二维数组如下
1 2 3
4 8 0
最大值为8,其对应的行下标为1,其对应的列下标为1
改过的代码:
#include《stdio.h》
#define M 5
#define N 5
void main()
{
int i,j,m,n;
int a,int m,int n);
printf("输入二维数组的行数和列数\n");
scanf("%d%d",&m,&n);
printf("输入二维数组如下\n");
for(i=0;i《m;i++)
for(j=0;j《n;j++)
scanf("%d",&a);
p=array(a,m,n);
printf("最大值为%d,其对应的行下标为%d,其对应的列下标为%d", p);
}
int *array(int (*p),int m,int n)
{
int i,j;
static int t;
t;
t=0;
t=0;
for(i=0;i《m;i++)
for(j=0;j《n;j++)
if(p)
{
t;
t=i;
t=j;
}

return t;
}

C语言设计函数:接受一个二维数组,用指针方式返回数组的最大值,最小值

#include 《stdio.h》
void get_val(int array, int m, int n, int *max, int *min)
{
int i, j;
for(*max = array, j = 0; j 《 m; j++){
for(i = 0; i 《 n; i++){
if(*max 《 array){
*max = array;
}
if(*min 》 array){
*min = array;
}
}
}
}
int main(int argc, char *argv)
{
int array_test;
int j, i, max, min;

for(j = 0; j 《 100; j++){
for(i = 0; i 《 200; i++){
array_test = i*j;
}
}
get_val(array_test, 100, 200, &max, &min);
printf("max:%d,min:%d\n",max,min);

}
编译通过并通过测试,另外还可以通过指针传递:
void get_val(int *array, int m, int n, int *max, int *min)
{
int i, j;
for(*max = *array, *min= *array, j = 0; j 《 m; j++){
for(i = 0; i 《 n; i++){
if(*max 《 *(array+j*n+i)){
*max = *(array+j*n+i);
}
if(*min 》 *(array+j*n+i)){
*min = *(array+j*n+i);
}
}
}
}

c语言指针 用指向数组元素的指针找出二维数组中最大元素极其位置(数组在程序中赋值)

#include《stdio.h》
void main()
{
void search(int *p,int n);
int a=,,};
search(a,12);//
}
void search(int *p,int n)
{
int max=*p;
for(;n》0;p++,n--)//
if(*p》max) max=*p;

printf("%d",max);
}
写了//的是我改过的地方
另外,团IDC网上有许多产品团购,便宜有口碑

用指针实现:找出二维数组(设3行4列)中的最大数及其位置

  在内存中实际上没有二维数组的概念,可以完全看成一维数组。求最大值,可以使用假设法,假设第1个元素为最大值,然后遍历数组,通过比较求出最大值即可。找到在1维数组中的维数再转换成二维数组中的维数即可。

#include 《stdio.h》
int main()
{
int a =  {
{92,108,3000,1},
{100,101,102,103},
{799,10000,20, 0}
};
int *pstart = &a;
int max = a;
int pos = 0;
for (int inx=0; inx!=12; ++inx) {
if (*(pstart+inx) 》 max)  max = *(pstart+inx), pos = inx;
}
printf("最大值是:%d\t其所在位置:a\n", max, pos / 4, pos % 4);
return 0;
}

c语言用指针找二维数组中的最大值和下标

#include 《stdio.h》
void InputArray(int *p,int m,int n);
int FindMax(int *p,int m,int n,int *pRow,int *pCol);
int main(){
int a;
int m,n;
int max,r,c;
printf("Input m,n:\n");
scanf("%d,%d",&m,&n);
InputArray(a,m,n);
max=FindMax(a,m,n,&r,&c);
printf("max=%d,row=%d,col=%d\n",max,r,c);
return 0;
}
void InputArray(int *p,int m,int n){
int i,j;
printf("Input %d*%d array:\n",m,n);
for(i=0; i《m; i++)
for(j=0; j《n; j++)
scanf("%d",(p+i*n+j));
}
int FindMax(int *p,int m,int n,int *pRow,int *pCol){
int i,j,max=*p;
*pRow=0;
*pCol=0;
for(i=0; i《m; i++)
for(j=0; j《n; j++)
if(*(p+i*n+j)》max){
max=*(p+i*n+j);
*pRow=i;
*pCol=j;
}
return max;
}

二维数组指针问题求二位数组的最大值

如果满意请采纳!!

首先max函数的应该有返回值,所以在max前要加上int 

第二,数组初始化不对,int a={{1,2,9,7},{5,13,7,6},{9,10,15,1}}圆括号改为花括号

代码修改如下:

#include 《stdio.h》
#define M 3
#define N 4
int max(int a)
{
int i,p,*q;
p=a;
for(i=0;i《(M*N);i++)
    {
if(*q》p)
{
p=*q;
}
q++;
}
return p;
}
main()
{
int a={{1,2,20,7},{5,13,7,6},{9,18,15,1}},c;
c=max(a);
printf("最大值为%d\n",c);
}

C语言求一个二维组每行每列的最大值 并放在一个新数组中 ,用指针做

行列最大值,方法很多,一般循环遍历属于就可以了。

既然你要用指针来做,我就用指针来写。利用数组元素地址连贯性来做。

#include 《stdio.h》

#define MXR 4//最大行数

#define MXC 3//最大列数

int main()

{

    int i=0,mr,mc,*p=NULL,*ps=NULL;

    int nums={{8,6,7},{2,6,3},{1,4,2},{9,3,5}};

    int mrs;

    printf("原二维数组:\n8 6 7\n2 6 3\n1 4 2\n9 3 5\n");

//-----------------------获取每行最大值------------------------------------------------

    p=&nums,mr=*p;

    for(;p《=&nums;p++)

    {

        if(p》&nums)%MXC==0)//如果指针换行,保存上一行最大值

        {

            mrs=mr;

            mr=*p;

        }

        if(mr《*p)

            mr=*p;

    }

    mrs=mr;

//-----------------------获取每列最大值-----------------------------------------------------

    i=0,ps=&nums;

    while(ps《=&nums)

    {

        p=ps,mc=*p;

        while(p《=&nums)

        {

            if(mc《*p)

                mc=*p;

            p+=MXC;

        }

        mcs=mc;

        ps++;

    }

//---------------输出结果-----------------------------------------------------------------

    printf("每行最大值分别为: \n");

    for(i=0;i《MXR;i++)

        printf("%d ",mrs);

    printf("\n每列最大值分别为: \n");

    for(i=0;i《MXC;i++)

        printf("%d ",mcs);

    return 0;

}

C语言程序,急用指针实现:找出二维数组(设3行4列)中的最大数及其位置

# include《stdio.h》
m a i n ( )
{
int a,*ptr,i,j,max,maxi,maxj;
/ * m a x 是数组的最大, m a x i 是最大元素所在行, m a x j 是最大元素所在列 * /
f o r ( i = 0 ; i 《 3 ; i + + )
f o r ( j = 0 ; j 《 4 ; j + + )
s c a n f ( " % d " , & a ) ;
p t r = a ; / *将二维数组的首地址传递给指针变量 * /
m a x _ a r r ( p t r , & m a x , & m a x i , 1 2 ) ;
m a x j = m a x i % 4 ; / *每行有四个元素,求该元素所在列 * /
m a x i = m a x i / 4 ; / *求该元素所在行 * /
printf("max=%d,maxi=%d,maxj=%d",max,maxi,maxj);
}
int max_arr(b,p1,p2,n)
int *b,*p1,*p2,n;
/ * b指向二维数组的指针,p 1指向最大值,p 2指向最大值在一维数组中的位置, * /
/ * n是数组的大小 * /
{
int i;
*p1=b; *p1=0;
f o r ( i = 1 ; i 《 n ; i + + ) / * 找最大* /
if (b; *p2=i;}
}
运行程序:
R U N
4 7 8 9
3 7 9 3
1 5 2 6
max=9,maxi=0,maxj=3

刚学指针不太懂,想编写一个程序,求二维数组中的最大数输出,并输出所在的行和列,下面编的不对的,

int hang,int lie 的结果要从函数带回来,所以要用指针。
a。

#include《stdio.h》
#include《stdlib.h》
int main(){
int zd(int a,int *hang,int *lie);
int a={{1,3,5,9},{9,6,2,7},{3,5,7,8}};
int max,hang,lie;
zd( a, &hang, &lie); // max = zd( a, &hang, &lie); 也可以
printf("max = %d\n",a);
printf("shi di %d hang:\n",hang);
printf("shi dou shao %d lie:",lie);
return 0;
}
int zd(int a,int *hang,int *lie){
int i,j,k,max;
*hang =0; *lie=0; max=a; // 设初始max, 行0,列0
for(i=0;i《3;i++) for(j=0;j《4;j++) {
if(a; *hang=i; *lie=j;};
}
return max; // 可以用函数返回最大值
}

关于指针二维数组函数最大值,用函数求一个二维数组的最大值及其行下标和列下标的介绍到此结束,希望对大家有所帮助。

指针二维数组函数最大值(用函数求一个二维数组的最大值及其行下标和列下标)

本文编辑:admin

更多文章:


mariadb忘记密码(mysql用户密码忘记了怎么办)

mariadb忘记密码(mysql用户密码忘记了怎么办)

大家好,mariadb忘记密码相信很多的网友都不是很明白,包括mysql用户密码忘记了怎么办也是一样,不过没有关系,接下来就来为大家分享关于mariadb忘记密码和mysql用户密码忘记了怎么办的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月15日 07:50

mysql端口号(如何查看自己数据库的端口号)

mysql端口号(如何查看自己数据库的端口号)

“mysql端口号”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看mysql端口号(如何查看自己数据库的端口号)!

2026年10月15日 06:30

printf打印16进制(C语言 十六进制怎么输出)

printf打印16进制(C语言 十六进制怎么输出)

大家好,今天小编来为大家解答以下的问题,关于printf打印16进制,C语言 十六进制怎么输出这个很多人还不知道,现在让我们一起来看看吧!

2026年10月15日 06:00

avantage怎么设置为中文(Avantage安装丢失GIT)

avantage怎么设置为中文(Avantage安装丢失GIT)

大家好,如果您还对avantage怎么设置为中文不太了解,没有关系,今天就由本站为大家分享avantage怎么设置为中文的知识,包括Avantage安装丢失GIT的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月15日 03:00

ospf协议的作用是什么(OSPF路由协议的作用是什么)

ospf协议的作用是什么(OSPF路由协议的作用是什么)

“ospf协议的作用是什么”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看ospf协议的作用是什么(OSPF路由协议的作用是什么)!

2026年10月15日 02:40

方案对比特效js(在一个网页中如何实现两个JS特效)

方案对比特效js(在一个网页中如何实现两个JS特效)

各位老铁们好,相信很多人对方案对比特效js都不是特别的了解,因此呢,今天就来为大家分享下关于方案对比特效js以及在一个网页中如何实现两个JS特效的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月15日 02:10

activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)

activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)

今天给各位分享登陆视频监控网页时提示activex控件未注册,怎么解决的知识,其中也会对登陆视频监控网页时提示activex控件未注册,怎么解决进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 20:30

学生信息管理系统c语言(用C语言编程学生信息管理系统!)

学生信息管理系统c语言(用C语言编程学生信息管理系统!)

今天给各位分享用C语言编程学生信息管理系统!的知识,其中也会对用C语言编程学生信息管理系统!进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 20:20

excel连接sql数据库教程(excel怎么连接sql数据库)

excel连接sql数据库教程(excel怎么连接sql数据库)

本篇文章给大家谈谈excel连接sql数据库教程,以及excel怎么连接sql数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月14日 19:40

null s brawl(null和空字符有区别吗)

null s brawl(null和空字符有区别吗)

今天给各位分享null和空字符有区别吗的知识,其中也会对null和空字符有区别吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 19:00

最近更新

可信验证系统(什么是可信云认证)
2026-10-15 10:00:23 浏览:0
广告推广app(常见的app推广方式)
2026-10-15 09:20:01 浏览:0
热刺vs马赛比赛(热刺赛程比分)
2026-10-15 09:10:01 浏览:0
热门文章

标签列表