一个C的数组的问题的调试

来源:百度知道 编辑:UC知道 时间:2024/09/25 07:16:58
以下程序,请帮我调下:

#include<stdio.h>
main()
{
int i,j,k,a[4][3]={{100,89,86},{95,80,98},{87,90,85},{79,92,97}};
printf("\n");
for(i=0;i<4;i++)
{
k=a[i][0];
for(j=0;j<3;j++)
if(k<a[i][j])
k=a[i][j];
printf("a[%d][%d]=%d\n",i,j,k);
}
}

问题描述:挑出一个已知数组的每一行的最大值。

问题是,最后数组的输出里面,值正确,但是第2个下标总是3,帮忙解决下哈!谢谢了!

#include<stdio.h>

void main()
{
int i,j,t = 0,k,a[4][3]={{100,89,86},{95,80,98},{87,90,85},{79,92,97}};
printf("\n");
for(i=0;i<4;i++)
{
k=a[i][0];
for(j=0;j<3;j++)
{
if(k < a[i][j])
{

k = a[i][j];

t = j;
}
}
printf("a[%d][%d]=%d\n",i,t,k);
}
}
你要先定义一个变量T,用来存放你最大的数在每行的位置,因为当你打印这个数的时候,你的变量j都是循环到2了,所以你每次打印的这个j都是3.正确的我已经改好了,你去体会下

你那个printf要写在if里
if(k<a[i][j])
{k=a[i][j];
printf("a[%d][%d]=%d\n",i,j,k); }
这样才行!

#include<stdio.h>
main()
{
int i,j,k,a[4][3]={{100,89,86},{95,80,98},{87,90,85},{79,92,97}};
int m;//定义一个变量表示k在数组中的位置,一个就行了
for(m=0,i=0;i<4;i++)
{
k=a[i][0];
for(j=0;j<3;j++)
if(k<a[i][j])
{
k=a[i][j];
m=j;//记录k的位置
}
printf("a[%d][%