猿问

输入输出函数

#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");
    
}

运行的过程的是怎样的?

街角疯
浏览 1293回答 2
2回答

慕粉3918764

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的元素再打印出来!!!

小哟白

输入:scanf 输出:printf
随时随地看视频慕课网APP
我要回答