当前位置:编程学习 > C/C++ >>

c语言中,下面程序运行的结果是什么?

main () { int c ; while (( c= getchar())! = '\n') { switch (c - '2') { case 0 : case 1 : putchar (c+4); case 2 : putchar (c+4);break; case 3 : putchar (c+3); case 4 : putchar (c+3);break; } } printf("\n") ; } 提问: 1、上面程序运行结果是什么? 2、求详细解答过程
答案:输入2时,输出66
输入3时,输出77
输入4时,输出8
输入5时,输出88
输入6时,输出9
输入其他数字或字母时,无输出,键入<ENTER>时,结束程序。
/*
23456
66778889
Press any key to continue
*/
其他:求人不如自己动手,用一个编译器,添加断点自己编译一下就行了 结果是什么取决于变量c的值,所以不好说运行结果是什么。

你程序中c的类型为整形数据,在while循环中却用getchar函数把一个从键盘键入获得的字符数据赋值给了c,这会引发下面代码得不到你想要的结果 输入2 为66,3为77,4为8,5为88,6为9,其他的都为空。。。
输入2时打印case 1和case2,两者没空格就成66了
输入3时也打印case 1和case2,成77
输入4时只打印case2,成8
以此推。。。
getchar获得为字符 

上一个:C++主函数int main()中调用了一个int型的函数,为什么运行到该函数时程序没有结束?
下一个:嵌套循环里的getchar也会逐个读取输入吗?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,