数组的循环问题
这是个二维数组输入值之后取其中的最大的值以及对应的下标的。(这是个例题)在此有个疑问:怎么实现数组b[][4]行数的不定,也就是说行是可变的,只要开始输入对应的行数即可。
比如说:输入的是2 那就是b[2][4],然后再输入数组里的数值。
也可以只输入一组数,以第一个数作为行数,后面的数作为数组里的数。
其实这个问题觉得要么很简单,要么就不容易,呵呵。
#include <stdio.h>
int max(int a[][4],int n,int *r,int *c);
void main()
{
int b[3][4];
int i,j,m,r,c;
printf("please input the numbers:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&b[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf(" %d",b[i][j]);
printf("\n");
}
m=max(b,3,&r,&c);
printf("\n the max number is: max= %d\n",m);
printf("theirs position is : r= %d,c= %d\n",r,c);
}
int max(int a[][4],int n,int *r,int *c)
{
int i,j,m;
m=a[0][0];
*r=0;
*c=0;
for(i=0;i<n;i++)
for(j=0;j<4;j++)
if(m<a[i][j])
{
m=a[i][j];
*r=i;
*c=j;
}
return(m);
}
[ 本帖最后由 jomwang 于 2010-2-1 17:29 编辑 ]