求助!这道题想死我了!!

TANKTHT 2005-10-10 12:57:24
读程序题:
#include "stdio.h"
#define N 6
main()
{
char c[N];int i=0;
for(;i<N;c[i]=getchar(),i++);
for(i=0;i<N;putchar(c[i]),i++);
}

输入a 回车
b 回车
cdef 回车

这道题的答案是 a
b
cd

而我觉得应该是 a
b
c
d
e
f
阿,到底怎么回事啊????请大家帮帮我谢谢了~
...全文
93 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
v41dugu 2005-10-10
  • 打赏
  • 举报
回复
你为什么认为是 a
b
c
d
e
f

啊???
lengxiao_wang 2005-10-10
  • 打赏
  • 举报
回复
建议楼主输入abcdef 然后回车试一试!你将发现你输出也是abcdef!
因为回车本身也是一个字符
baicheng 2005-10-10
  • 打赏
  • 举报
回复
输入a (c[0] = 'a')回车(c[1] = 10即回车)
b (c[2] = 'b')回车(c[3] = 10即回车)
cdef (c[4] = 'c' c[5] = 'c' 之后的都没有啦) 回车
不知道这么说楼主是否理解
TANKTHT 2005-10-10
  • 打赏
  • 举报
回复
真是受益匪浅阿~~
TANKTHT 2005-10-10
  • 打赏
  • 举报
回复
懂了~谢谢,终于弄明白了:)
v41dugu 2005-10-10
  • 打赏
  • 举报
回复
a 回车
b 回车
cdef 回车
这里循环是6次,读的就是前6个字符。。。。第一个是a,第二个就是a后面的 回车。。。。所以读到d就是最后一个,,6次循环结束。。。。
v41dugu 2005-10-10
  • 打赏
  • 举报
回复
你要先搞清楚getchar这个函数的意思。。。它是读入一个字符。。。注意 是一个字符 比如
char c1=getchar();
char c2=getchar();
这里有两个getchar函数连着写的 那么如果你输入 ab 那么 c1就是‘a’,而当getchar取得a的时候,它就停止了,后面的b就给了第2个getchar。。。。
而你的问题中,你输入的是 a ,然后回车,对不对。。。。这里和上面一样 a被第一个getchar读了 。而回车也是一个字符啊!!所以你输入的a后面的回车就被第2个getchar读取了。。。。。
后面的也是同理 懂了没??
v41dugu 2005-10-10
  • 打赏
  • 举报
回复
TANKTHT 2005-10-10
  • 打赏
  • 举报
回复
能不能说详细点啊?我还是没有懂起~~谢谢了
qfeng_zhao 2005-10-10
  • 打赏
  • 举报
回复
回车也是一个字符阿
v41dugu 2005-10-10
  • 打赏
  • 举报
回复
不要忘了回车也被读入了啊!!!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧