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

[复制链接]
 楼主| 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[10], i初始值为0, i=0,a[0]=0,然后i+1,此时为1,a[1]=1,一直这样循环到i=9,a[9]=9;
第二个for循环是用printf输出a[10],这个for循环是从i=9开始第一次输出a[9],接着i--为8,输出a[8],在i--,输出
a[7],这样一直循环到i=0,即输出a[0],这样就实现了倒叙输出.
 楼主| snows512921 发表于 2014-2-11 16:41 | 显示全部楼层
匿名者 发表于 2014-2-10 09:38
第一个for循环是初始化a[10], i初始值为0, i=0,a[0]=0,然后i+1,此时为1,a[1]=1,一直这样循环到i=9,a[9]=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]=0
 楼主| snows512921 发表于 2014-2-17 15:31 | 显示全部楼层
lvyunhua 发表于 2014-2-14 09:07
不可以的。你这样只输出一个结果就是a[0]=0

为什么?有点不懂,求详解
john_lee 发表于 2014-2-17 18:09 | 显示全部楼层
snows512921 发表于 2014-2-17 15:31
为什么?有点不懂,求详解

for 后只能有一条语句。
lvyunhua 发表于 2014-2-18 13:04 | 显示全部楼层
如果for后面有两条或两条以上的语句,需要{}符号将它们括起来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

9

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

4

主题

9

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部