是在看不懂!
#include <stdio.h>main()
{
char c;
int x=0,y=1,z=0;
do
{
switch( c = getchar() )
{
case 'i': case 'I':
case 'c': case 'C':
case 'o': case 'O': x++;
default: y++; z++;
}
}while( c!='m' );
printf("x=%d y=%d z=%d", x, y, z);
} 想问什么问题呢,哪个地方看不懂?
你哪不懂可以 讲出来 {:9_241:} 让程序跑一下 #include <stdio.h>
#defineDEBUG1 printf("1.x=%d;y=%d;z=%d;\n",x,y,z)
#defineDEBUG2 printf("2.x=%d;y=%d;z=%d;\n",x,y,z)
/*IED&Compile:C-Free 5.0;
*说明:纯属个人理解,忽悠纯属个人业余爱好 ;
*/
int main(){
char ch;
int x=0,y=1,z=0;
do{
printf("接受输入字符:");
scanf("%c",&ch);
(void)getchar();/*这里我不太清楚,以前也遇到过,
*存在于缓冲区的换行符被送到了下个接受 口中;
*你可以把这个getchar()注释掉试试看
*但是我输入1,而后继续输入i,尼玛,然后我就艹了
*...这个bug,找大神吧。。。
*/
switch(ch){
case 'i': case 'I':
case 'c': case 'C':
case 'o': case 'O': x++;
default: y++; z++;
/*没有break;肯定是一级一级的判断,我想问的是存在case嵌套这种说法吗?
*不过,没有break;不管是case 'i':...; 还是case 'i': case 'I'..都是一样的
*如果输入的数据和任意case相同的就会实现x++和y++,z++;
*如果没有和任意case一样的,就只实现y++,z++(dafault);
*/
DEBUG1;
printf("任意键继续...");
(void)getchar();
}
DEBUG2;
printf("任意键继续...");
(void)getchar();
}while( ch!='m' );
printf("x=%d y=%d z=%d", x, y, z);
getchar();
return 0;
}
//1小时之后,我感觉我应该发布新的问题,我也遇到问题了。。。。。
时间:2013年7月29日18:02:38;{:7_119:} 364904690 发表于 2015-7-29 16:23
想问什么问题呢,哪个地方看不懂?
答案是6,15,14
这答案怎么来的? 364904690 发表于 2015-7-29 16:23
想问什么问题呢,哪个地方看不懂?
答案是6,15,14
这答案怎么来的? lark 发表于 2015-7-29 18:00
时间:2013年7月29日18:02:38;
我彻底看晕了!大神 小人 发表于 2015-7-29 16:24
你哪不懂可以 讲出来
答案是6,15,14
这答案怎么来的? 这个要看你输入的是些什么值。才能算出答案,你仔细看一下5楼的。讲得很细了。 有些东西没有学到,需要慢慢消化 小阿妞 发表于 2015-7-30 15:37
我彻底看晕了!大神
因为我提前晕了{:7_146:} 这个很好理解呀,一开始就让你输入一字母,然后判断这个字母是不是 'i','I','o','O','c','C'这几个中的一个,如果是的话就x增加1,如果不是的话,就y和z增加1,知道你输入的的c等于'm'就结束了。输出什么是要看你输入了什么,是一个不固定的值
页:
[1]