#include<stdio.h>
void main()
{int i,j,max,a[10];
printf("please input 10 numbers:\n");
for(i=1;i<=10;i++)
scanf("%d",&a[i]);
for(max=a[1],j=2;j<=10;j++)
if(a[j]>max) max=a[j];
printf("%d",max);
}
大家帮忙看下哪里错了,为什么每次运行都是输出10,不知道怎么回事,谢谢..
----------------解决方案--------------------------------------------------------
给你改了一下:
#include<stdio.h>
void main()
{
int i,j,max,a[10];
printf("please input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(max=a[0],j=1;j<10;j++)
if(a[j]>max) max=a[j];
printf("%d\n",max);
}
----------------解决方案--------------------------------------------------------
原本就没发现你的错误
然后用编译器编译的了一下,没有错
----------------解决方案--------------------------------------------------------
给你改了一下:
#include<stdio.h>
void main()
{
int i,j,max,a[10];
printf("please input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(max=a[0],j=1;j<10;j++)
if(a[j]>max) max=a[j];
printf("%d\n",max);
}
你这个只是格式上改了改,别的没变化
----------------解决方案--------------------------------------------------------
有啦!LZ在引用数组的时候下标是错误的,不知道你发现没有?而且也越界了!
----------------解决方案--------------------------------------------------------
那究竟是哪里错了呢?我运行的时候是出现10的,不管你输入什么都这样...我用的是VC++6.0
----------------解决方案--------------------------------------------------------
那究竟是哪里错了呢?我运行的时候是出现10的,不管你输入什么都这样...我用的是VC++6.0
for(i=1;i<=10;i++)
改成for(i=0;i<10;i++)
如果你还有疑问,直接在for语句后加中括号
重起下机子看看
你眼睛真精
[此贴子已经被作者于2007-4-17 19:23:39编辑过]
----------------解决方案--------------------------------------------------------
应该不是ls所说的。
for (i=1;i<=10;i++)
改为for (i=0;i<10;i++)
数组下标从0开始的。
----------------解决方案--------------------------------------------------------
干脆不要用数组了
#include<stdio.h>
void main()
{
int max,n,i=9;
scanf("%d",&max);
while(i--)
{
scanf("%d",&n);
max=max>n?max:n;
}
printf("%d\n",max);
}
----------------解决方案--------------------------------------------------------
2楼正解
----------------解决方案--------------------------------------------------------