鱼C论坛

 找回密码
 立即注册
查看: 1378|回复: 4

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

[复制链接]
发表于 2015-2-17 07:47:54 | 显示全部楼层 |阅读模式
20鱼币
#include <stdio.h>
void main()
{
     int i,max,a[10];
     printf("input 10 numbers.\n");
     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("maxmum=%d\n",max);
}
注意这两段代码有一个i的赋值不同,但我调试出来结果是一样的。求解。并求:这段代码第二个for语句什么用。
#include <stdio.h>
void main()
{
     int i,max,a[10];
     printf("input 10 numbers.\n");
     for(i=0;i<10;i++)
     {
             scanf("%d",&a[i]);
     }
     max=a[0];
     for(i=1;i<10;i++)
     {
             if(a[i]>max)
             {
                     max=a[i];
             }
     }
     printf("maxmum=%d\n",max);
}

最佳答案

查看完整内容

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

使用道具 举报

发表于 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,再继续比较后面的数,知道循环结束。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-17 08:50:40 | 显示全部楼层
这两段代码都是
输入10个整数,然后求这10个数中的最大数
求最大数的方式是:先取10个数中的一个(两段代码都是取得第一个数a[0]),放在max中,然后将这个数max和其他9个数一一进行比较(第一段代码是和10个数比较,即和它自己也进行比较了),每次比较都将大数放在max中,比较完了max就是最大数了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-17 09:07:33 | 显示全部楼层
第一段a[0] 和自己比较了一次
第二段 没有和自己比较 少循环一次 没什么区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-17 15:08:05 | 显示全部楼层
第二个for语句就是用来求出所输入的数的最大值的。因为一开始对max赋的是a[0]的值,所以对于i是从0开始还是从1开始,结果都是一样的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 18:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表