C用指针编程:输入一个4×5的二维整型数组,输出其中最大值、最小值以及它们所在行和列的下标

#include <stdio.h>
main()
{
int x[4][5],*p=*x,min=*p,max=*p;
int i,j,a=0,a1=0,b=0,b1=0;
printf("请输入一个4*5的二维数组:");
for(i=0;i<4;i++)

for(j=0;j<5;j++)
{
scanf("%d",p);
if(min>*p)
{
min=*p;
a1=i;
b1=j;
}
if(max<*p)
{
max=*p;
a=i;
b=j;
}

p++;
}
printf("最大值有:%d\n",max);
printf("下标为:%d %d",a,b);
printf("最小值有:%d\n",min);
printf("下标为:%d %d",a1,b1);
printf("\n");
}

最大值显示正常,但是最小值无论输入什么,都输出-85899....坐标都为00.
最大值最小值写法不都是一样的么,为什么结果显示不出来呢~

第1个回答  2015-05-29
刚开始的时候,数组中没有任何值,所以,给min赋值*p是一个随机小的数,在循环中做一个判断就可以了,当输入是第一个元素时,让min和max等于第一个元素,之后再对输入判断是否比现在的min和max的关系。本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网