snows512921 发表于 2014-2-10 08:57

下面这个程序的具体运行过程求解

下面这个程序的具体运行过程求解
#include <stdio.h>
void main()
{
   int i,a[10];
   for (i=0; i<=9;i++)
      a[i]=i;
   for(i=9;i>=0; i--)
   printf("%d ″,a[i]);
   printf("\n″);
}

snows512921 发表于 2014-2-10 09:00

对于这个程序有以下几点疑问:
1.它是怎么运算的?
2.for循环是怎么循环的,为什么输出是倒序的?有点看不明白

soso 发表于 2014-2-10 09:38

第一个for循环是初始化a, i初始值为0, i=0,a=0,然后i+1,此时为1,a=1,一直这样循环到i=9,a=9;
第二个for循环是用printf输出a,这个for循环是从i=9开始第一次输出a,接着i--为8,输出a,在i--,输出
a,这样一直循环到i=0,即输出a,这样就实现了倒叙输出.

snows512921 发表于 2014-2-11 16:41

匿名者 发表于 2014-2-10 09:38 static/image/common/back.gif
第一个for循环是初始化a, i初始值为0, i=0,a=0,然后i+1,此时为1,a=1,一直这样循环到i=9,a=9;
...

那上面的程序能直接写成下面这样么?
#include <stdio.h>
void main()
{
   int i,a[10];
   for(i=9;i>=0; i--)
      a[i]=i;
   printf("%d ″,a[i]);
   printf("\n″);
}

craaazyfor 发表于 2014-2-12 08:17

怎么赋值,怎么输出都是你说了算,想怎么赋,怎么输出就怎么写。

lvyunhua 发表于 2014-2-14 09:07

本帖最后由 lvyunhua 于 2014-2-14 09:09 编辑

那上面的程序能直接写成下面这样么?
#include <stdio.h>
void main()
{
   int i,a[10];
   for(i=9;i>=0; i--)
      a[i]=i;
   printf("%d ″,a[i]);
   printf("\n″);
}
不可以的。你这样只输出一个结果就是a=0

snows512921 发表于 2014-2-17 15:31

lvyunhua 发表于 2014-2-14 09:07 static/image/common/back.gif
不可以的。你这样只输出一个结果就是a=0

为什么?有点不懂,求详解

john_lee 发表于 2014-2-17 18:09

snows512921 发表于 2014-2-17 15:31 static/image/common/back.gif
为什么?有点不懂,求详解

for 后只能有一条语句。

lvyunhua 发表于 2014-2-18 13:04

如果for后面有两条或两条以上的语句,需要{}符号将它们括起来。
页: [1]
查看完整版本: 下面这个程序的具体运行过程求解