为了账号安全,请及时绑定邮箱和手机立即绑定

输入输出函数

输入输出函数

C
街角疯 2016-08-25 17:17:24
#include "stdio.h" #define N 6 void main() { char c[N]; int i=0; for(;i<N;c[i]=getchar(),i++); for(i=0;i<N;i++)putchar(c[i]);printf("\n");      }运行的过程的是怎样的?
查看完整描述

2 回答

已采纳
?
慕粉3918764

TA贡献1条经验 获得超2个赞

for(; i<N; c[i]=getchar(),i++)
{
    ;
}
上面的语句这样写可能更清楚一点!!

先得弄清楚for循环的执行顺序:
for循环内部以;为分割符,一共两个分号,共三条语句段
执行顺序为:
第一步:执行语句段1;
第二步:执行语句段2,如果语句段2为真,进入{},执行{}里面的语句,{}里的语句执行完执行语句段3;
                     如果语句2段为假,则退出循环。
第三步:执行语句段3,注意!!语句段3执行完毕之后,返回执行语句段2,也就是重复第二步!!


在这里:
---第一次循环---
执行第一段:是个空语句;
执行第二段:i的初值为0,N的值通过define定义为6,所以i<N为真,执行第三段。
执行第三段:c[i]=getchar(),意思是把你从键盘输入的字符放到数组c的第i个位置,第一次i=0,所以是把字符放到c[0]的位置
            然后 i++ 的意思是 i 的值自加1。
            
---第二次循环---
执行第二段:判断i<N是否为真,因为第一次循环之后i的值变成了1,所以i<N 就是1<6,为真,执行第三段。
执行第三段:c[1] = getchar(),然后i++。

......
共循环6次!!!

所以这个循环的目的就是输入6个字符,放到数组c里面


for(i=0;i<N;i++)putchar(c[i]);printf("\n");
第一个for循环懂了,这个for循环就可以理解了,就是把数组c的元素再打印出来!!!


查看完整回答
2 反对 回复 2016-09-02
  • 街角疯
    街角疯
    就是关于上面的程序,如果从键盘上输入: ab回车 c回车 def回车 为什么输出结果就是 ab c d
?
小哟白

TA贡献3条经验 获得超2个赞

输入:scanf
输出:printf

查看完整回答
反对 回复 2016-08-26
  • 2 回答
  • 0 关注
  • 1292 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信