C语言的程序调试的时候有错误提示,我选了忽略却可以继续执行...我想知道这是为什么...
我们作业题目是从键盘为一个3*3整型数组输入数据,并找出元素的最大值及其所在行号然后我的程序是这么写的#include<stdio.h>intmain(){inti,j,...
我们作业题目是
从键盘为一个3*3整型数组输入数据,并找出元素的最大值及其所在行号
然后我的程序是这么写的
#include<stdio.h>
int main()
{
int i,j,a[3][3],max,c,b;
max=a[0][0];
printf("输入9个数字\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
printf("这个数组为\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%5d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(max<=a[i][j])
{max=a[i][j];
c=i;
b=j;
}
}
printf("最大值是第%d行%d列的%d",c+1,b+1,max);
return 0;
}
然后就来问题了...
这是出现的错误提示和我选择了忽略然后继续运行程序的图....
我选了忽略之后程序可以正常运行....
我想知道我的程序哪里有问题吗....
谢谢... 展开
从键盘为一个3*3整型数组输入数据,并找出元素的最大值及其所在行号
然后我的程序是这么写的
#include<stdio.h>
int main()
{
int i,j,a[3][3],max,c,b;
max=a[0][0];
printf("输入9个数字\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
printf("这个数组为\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%5d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(max<=a[i][j])
{max=a[i][j];
c=i;
b=j;
}
}
printf("最大值是第%d行%d列的%d",c+1,b+1,max);
return 0;
}
然后就来问题了...
这是出现的错误提示和我选择了忽略然后继续运行程序的图....
我选了忽略之后程序可以正常运行....
我想知道我的程序哪里有问题吗....
谢谢... 展开
1个回答
展开全部
做统计最大的时候没有对b,c,max进行初始化,需要先初始化一下:
#include<stdio.h>
int main()
{
int i, j, a[3][3] = {0}, max, c, b;//////////
printf("输入9个数字\n");
for (i = 0; i<3; i++)
{
for (j = 0; j<3; j++)
scanf("%d", &a[i][j]);
}
printf("这个数组为\n");
for (i = 0; i<3; i++)
{
for (j = 0; j<3; j++)
printf("%5d", a[i][j]);
printf("\n");
}
max = a[0][0];/////////////
c = 0, b = 0;//////////////
for (i = 0; i<3; i++)
{
for (j = 0; j<3; j++)
if (max < a[i][j])
{
max = a[i][j];
c = i;
b = j;
}
}
printf("最大值是第%d行%d列的%d", c + 1, b + 1, max);
return 0;
}
更多追问追答
追问
就是要再加c=0,b=0吗?
追答
是要加的,如果第一个数是最大的数,那么你的c和b就没有更新,是一个随机数了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询