早教吧 育儿知识 作业答案 考试题库 百科 知识分享

问个C语言,不明白啊题目:字符数组采用单个字符(%c)方式输入,并将它逆序输出。#include"stdio.h"main(){charc[20];inti=0,j;scanf("%c",&c[0]);while((c[i]!='\n')&&(c[i]!='')){i++;scanf("%c",&c[i]);};for(j=i-1;

题目详情
问个C语言,不明白啊题目:字符数组采用单个字符(%c)方式输入,并将它逆序输出。 #include "stdio.h" main() {char c[20];int i=0,j; scanf("%c",&c[0]); while((c[i]!='\n')&&(c[i]!=' ')) {i++;scanf("%c",&c[i]); }; for(j=i-1;j>=0;j--)printf("%c",c[j]); } 对于以上这个源程序,我不明白倒数第二行的for语句中的j=i-1,如果是j=i-1,当你输入20个字符时,应该是输出19个倒过来的字符,可是我运行起来竟然是20个字符,没有问题。而且当我改成j=i;时,就是不减一了,还是正确的,为什么啊?
▼优质解答
答案和解析
第一个循环玩以后i是输入的字符数+1 j=i-1,j才是最后输入的字符 你改成j=i也没问题是因为你的c刚好c[j]的地方是'\0'或其他不可见字符,所以输出来什么也看不见 你把for循环改成这样就可以看效果了: #inclu...
看了问个C语言,不明白啊题目:字符...的网友还看了以下: