请教个问题,在线
c语言吧
全部回复
仅看楼主
level 5
游隼烈天 楼主
#include
int main(){int n;char c;scanf("%d",&n);while(n--){while(c=getchar()!=EOF){if(c=='Z')c='A';else c=1+c;printf("%c",c);}}return 0;}为什么输入n的值后最输出一个不知道什么的东东啊???
2008年04月03日 12点04分 1
level 0
#include
int main() { int n; char c; scanf("%d",&n); while(n--){ while((c=getchar())!=EOF) { if(c == '\n')continue;if(c=='Z') c='A'; else c=1+c; printf("%c",c); } } return 0; }因为输入数字后,回车就是你第一输入的字符。用我上面的方法把回车滤掉就行了
2008年04月03日 13点04分 2
level 8
????????????? 还审查俺?????????
2008年04月03日 13点04分 3
level 5
游隼烈天 楼主
回车不是作为scanf语句结束表示吗???怎么成了getchar()函数的第一个字符???
2008年04月03日 13点04分 4
level 5
游隼烈天 楼主
一遇回车就continue那不是只能靠EOF来退出,并且n也没意义了啊
2008年04月03日 13点04分 6
level 0
你试一下运行看看呗。EOF是CTRL+Z
2008年04月03日 13点04分 7
level 0
内循环只能靠eof出来
2008年04月03日 13点04分 8
level 5
游隼烈天 楼主
运行是可以撒,就是必须得靠CTRL+Z才能退出
2008年04月03日 13点04分 9
level 0
那是肯定的,因为程序是写着要EOF出来啊。你刚学C吧
2008年04月03日 13点04分 10
level 0
ACM,要求输入N为执行次数
2008年04月03日 13点04分 11
level 0
我弄了个getchar()用来读取那个回车,OK了谢谢啊
2008年04月03日 13点04分 12
level 0
兄弟啊,这个问题我也不知道为什么刚刚整了半天也没有明白不过如果改成c='1';/*仅仅伟了进入下边的while语句*、while(c!=EOF) { c=getchar();if(c=='Z') c='A'; else c=1+c; printf("%c",c); } 就OK了
2008年04月03日 13点04分 13
level 0
其实问题的关键点在于while((c=getchar())!=EOF) LZ由于没有加()导致c的值通常一直都是TRUE即1然后在if(c=='Z') c='A'; else c=1+c; 这边导致c的ascii码=2所以打印出来的都是那个怪怪的笑脸一样的东西PS:谢谢2楼的,要不然还不知道什么时候才能找到问题所在呢
2008年04月03日 13点04分 14
level 0
你自己没加不能怪我撒不能怪我撒~~~~~~~~~~我就是奇怪怎么n运行第一次时候输出的是空白原来是被回车吃掉了~~~~~`
2008年04月03日 14点04分 15
1