|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- void main ()
- {
- int i,max,a[10];
- float avg =0.0;
- printf("input 10 numbers: ");
- for (i=0;i<10;i++)
- scanf("%d",&a[i]);
- max=a[0];
- for(i=0;i<10;i++)
- {
- avg=avg+a[i]/10.0;
- if(a[i]>max) max=a[i];
- }
- printf("avg=%f,max=%d\n",avg,max);
-
- }
复制代码
如上的一段代码,我改了如下if(a[i]>max) max=a[i];的位置,结果就不一样,想知道,假设a[5]是最大的,
赋值给了max后,在第二个for循环里max=a[5]会变成max=[9]吗,意思是整个程序里的i最后只能是同一个值,是这个意思吗
- #include <stdio.h>
- void main ()
- {
- int i,max,a[10];
- float avg =0.0;
- printf("input 10 numbers: ");
- for (i=0;i<10;i++)
- {
- scanf("%d",&a[i]);
- max=a[0];
- if(a[i]>max) max=a[i];
- }
- for(i=0;i<10;i++)
- {
- avg=avg+a[i]/10.0;
-
- }
- printf("avg=%f,max=%d\n",avg,max);
-
- }
复制代码
max只需在初始化时赋值一次,第一个程序因为在不同循环中,max的被重复赋值为a[0],但未影响到第二个循环中的比较。第二个程序因为赋值和比较在同一循环中,最后一次比较是a[0]和a[9]的比较,没有承载之前的最大值。
|
|