问答详情
源自:6-2 数组的遍历

那位高手看看这个何解???

#include <stdio.h>
int main()
{
 int i,max,a[]={10,5,20,31,4};
 max=a[0];
 for(i=0;i<5;i++)
 if(a[i]>max)
 max=a[i];
 printf("maxnum=%d\n",max);
 return 0;
}

为何运行结果只有31,没有20呢??

提问者:逆水中的鱼 2015-08-13 00:08

个回答

  • 慕移动9341187
    2016-09-24 19:11:22

    a【0】不是代表第一个数,这里定义的a【0】指的是一个随机数 。而不是你定义的数组里的数

  • daoer
    2015-10-30 14:51:06

    因为你没for语句后,没有加标号,编译时,默认只选择一句。相当于

    for(i=0;i<5;i++)

     { if(a[i]>max)

       {max=a[i];}

    }

     printf("maxnum=%d\n",max);

    所以选出最大以后,再输出。

  • xunluzhe
    2015-10-18 09:04:50

    #include <stdio.h>
    int main()
    {
     int i,max,a[]={10,5,20,31,4};
     max=a[0];
     for(i=0;i<5;i++)
     if(a[i]>max)
     {max=a[i];
     printf("maxnum=%d\n",max);
     }
     return 0; 
    }

    这样输出才是20 31.进行5次判断,大于一次就输出一次

  • qq_IT男求壁咚_0
    2015-09-29 11:20:39

    是从数组里面依次运行找最大的,然后输出最大的

  • bangni66
    2015-09-12 17:48:15

    变量max在for语句里相对来说算静态类型变量。

  • I_尼克哇
    2015-08-13 10:09:22

    对啊对啊,选最大数滴

  • 伊兮尘昔
    2015-08-13 10:05:46

    为什么有20,这是选最大数的

  • 伊兮尘昔
    2015-08-13 10:05:23

    为什么有20,这是选最大数的