数组编程问题,,,,....

来源:百度知道 编辑:UC知道 时间:2024/05/29 20:41:57
由于我是自学所以问的比较汗= =!呵呵请高手见谅,谢谢请详细点回答。
#include<stdio.h>
void main()
{
int i,j,row=0,colum=0,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];/*这一句是什么意思?是拿第一行第一列和a[i][j]比吗?*/
for(i=0;i<=2;i++)/*这一句和下面一句是控制赋值吗?*/
for(j=0;j<=3;j++)
if(a[i][j]>max)/*这一句是怎么比的?怎么判断谁大谁小?*/
{
max=a[i][j];/*?????*/
row=i;/*?????*/
colum=j;/*?????*/
}
printf("max=%d,row=%d,colum=%d\n",max,row,colum);
}
这个问题的题目是:有一个3乘4的矩阵,要求编程程序求出其中值最大的那个元素的值,以及其所在的行号和列号! 还有请高手写出这个解题的算法是什么??

max=a[0][0];是将a[0][0]赋值给max
两个for循环是按照a[0][0],a[0][1]...a[2][0],a[2][1]...a[2][3]这样的顺序依次将这些元素和max做比较
if(a[i][j]>max)//如果该元素比max大的话
{
max=a[i][j];/*将a[i][j]赋值给max,这样就保持max中的数是目前为止最大的元素*/
row=i;/*将该元素的行号保存起来*/
colum=j;/*将该元素的列号保存起来*/
}

如此循环结束以后,max中保存的就是最大的那个元素,row中保存的是最大元素的行号,colum中保存的是最大元素的列号

max=a[0][0];这句话是先把矩阵中的第一个数给max。意思就是从第一个数比起。
if(a[i][j]>max);这句是从a[0][0]开始和max中的数比大小。
进入if语句后,就把比max大的数a[i][j]存入到max中
下面两句就是分别存入 行号和列号。