|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- void main ()
- {
- int i,max,a[10];
- printf("input 10 numbers: ");
- for (i=0;i<10;i++)
- { scanf("%d",&a[i]);
- max=a[0];
- if(a[i]>max) max=a[i];}
- printf("max=%d",max);
-
复制代码
帮忙看下这样的代码输入10个数求最大,有什么问题吗
5,10,13,22,8,30,82,6,36,40,为什么最大数输出的是40,不是82
- #include <stdio.h>
- //将max = a[0]放在循环之外可解决该问题,具体原因见注释
- int main ()
- {
- int i,max,a[10];
- printf("input 10 numbers: ");
- for (i=0;i<10;i++)
- {
- scanf("%d",&a[i]);
- max=a[0]; //每次循环中都定义 max = a[0]
- if(a[i]>max) //将新输入的数组元素与 max即a[0]做比较,当大于a[0]时,即将max替换为上一个输入的数组元素
- max=a[i]; //那么根据程序,每次的max都是刚输入的值与第一个元素的比较,最后一个元素40 > 5,故max = 40.
- }
-
- printf("max=%d",max);
- }
-
复制代码
|
|