Michael-Bern 发表于 2015-2-17 07:47:54

两端代码比较,应该还算简单。

#include <stdio.h>
void main()
{
   int i,max,a;
   printf("input 10 numbers.\n");
   for(i=0;i<10;i++)
   {
           scanf("%d",&a);
   }
   max=a;
   for(i=0;i<10;i++)
   {
           if(a>max)
           {
                     max=a;
             }
   }
   printf("maxmum=%d\n",max);
}注意这两段代码有一个i的赋值不同,但我调试出来结果是一样的。求解。并求:这段代码第二个for语句什么用。
#include <stdio.h>
void main()
{
   int i,max,a;
   printf("input 10 numbers.\n");
   for(i=0;i<10;i++)
   {
           scanf("%d",&a);
   }
   max=a;
   for(i=1;i<10;i++)
   {
           if(a>max)
           {
                     max=a;
             }
   }
   printf("maxmum=%d\n",max);
}

ANDES 发表于 2015-2-17 07:47:55

个人的理解: 因为你有了max=a【0】;所以在第一段代码中的第二个for循环里面;i=0时;判断a【0】是否大于max;这个可以省略的,所以你第二段代码从i=1开始,就相当于第一段代码的a【0】被省略了。 至于第二个for循环的作用,是用来比较十个数的大小,假设a【0】是最大的,然后和后面的a【1】到a【9】比较,如果有比a【0】大德,就把它赋给max,再继续比较后面的数,知道循环结束。

elvo 发表于 2015-2-17 08:50:40

这两段代码都是
输入10个整数,然后求这10个数中的最大数
求最大数的方式是:先取10个数中的一个(两段代码都是取得第一个数a),放在max中,然后将这个数max和其他9个数一一进行比较(第一段代码是和10个数比较,即和它自己也进行比较了),每次比较都将大数放在max中,比较完了max就是最大数了

李小白 发表于 2015-2-17 09:07:33

第一段a 和自己比较了一次
第二段 没有和自己比较 少循环一次 没什么区别

L-0 发表于 2015-2-17 15:08:05

第二个for语句就是用来求出所输入的数的最大值的。因为一开始对max赋的是a的值,所以对于i是从0开始还是从1开始,结果都是一样的。
页: [1]
查看完整版本: 两端代码比较,应该还算简单。