一道超级简单的C谢谢达人~

来源:百度知道 编辑:UC知道 时间:2024/06/12 08:53:05
输入十个数.输出最大的

main(){
int i,a[i],max;
max=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10,i++)
if(a[i]>max)
max=a[i];
printf("%d",max);
}

居然出个结果是3129 我的老天。我哪写错了。谢谢.

}
修改下。1、我定义的初始数组为a[10]
2、再问我定义范围为10个数的数组。用0-9循环。为什么会溢出?
3、抱歉。现在的答案变成了1384为什么是这个数字。一运行就有
再请教达人
我发誓和下面那个帅哥写的一模一样.但是就是不出结果.
不信加QQ 有截图为证 379654491

main()
{
int i,a[10],max;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=0;i<10;i++)
if(a[i]>max)
max=a[i];
printf("%d",max);
getch();
}
像这样改应该就没有问题了吧,改了的几个地方是:max=a[0],而且放在第二个for之前,第二个for里面的那个逗号错了,该改为;
你出现溢出应该就是max=a[0]的地方用错了吧,因为还没有对数组进行复制之前,a[0]里面的值是不确定的。

#include<stdio.h>
void main()
{
int i;
int a[100];
int max=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(a[i]>max)
max=a[i];
printf("%d",max);
}
这是正确的结果,你在定义数组的时候要指明它的长度,如果你输入的数没有你的数组长度达那么就会发生溢出情况。你上面的数组定义的时候首先没有指明长度,只是一个变量i,这样不行,而且数组的真实长度应该是你要输入的数的长度加一,应为数组在结束的时候有一个\0作为结束的标志。不信的话你把int a[100];换成int a[11].结果也是正确的。

int i,a[i],max;
a[i]???这是C99的标准别用,改成a[10];
max=0; //万一数据都小鱼0呢?改成
max=a[0];//放到比较之前。

main(){
int i,a[i],max
<