许嵩Vae哈哈 发表于 2015-9-11 22:51:38

一道关于c语言的简单问题,大神求教

#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);
}


我在c编译器上运行不出来结果,而答案给的是6,15,14
请问这题是怎么求解的???

牡丹花下死做鬼 发表于 2015-9-11 22:51:39

你要输入东西的
他先获取你输入的一个字符判断是不是大小写i大小写c大小写o如果是xyz自增1
如果不是y,z自增1,然后在判断这个字符是不是m是就退出循环输出XYZ
不是m继续获取下一个字符继续判断
所以最终xyz是多少看你输入的字符的
比如你输入iiiiiiaaaaaaam应该就是你要的答案

许嵩Vae哈哈 发表于 2015-9-12 00:00:06

牡丹花下死做鬼 发表于 2015-9-11 23:16
你要输入东西的
他先获取你输入的一个字符判断是不是大小写i大小写c大小写o如果是xyz自增1
如果不是y,z自 ...

嗯嗯,我明白了。刚刚是我审题错误,谢谢你啦!:ton:

阔怀 发表于 2015-9-15 17:09:37

好像没有break

y290176346 发表于 2015-9-16 21:51:25

领到10个鱼币再说

初学C语言 发表于 2015-9-17 16:06:40

初学 看不是很懂。。。。

_crazy 发表于 2015-10-20 20:21:09

有getchar():sweat:

小伪 发表于 2015-10-21 20:47:53

没有 break;只要输入是i,c,o中的一个X都会自增1,其他的字符Y和Z会自增1.其实可以使用islower().isupper()
来判断。

李昭 发表于 2015-10-22 16:23:04

你要给出输入

hiwch 发表于 2015-10-29 08:25:36

我的天听说有鱼币

眨眼一瞬间 发表于 2015-11-9 18:35:28

是从键盘输入一个字符串,统计其中小写字母i c o 与大写字母ICO的个数存放到X中,其他字符存到Y,z中,遇到m认为字符串结束,也就是循环结束了
页: [1]
查看完整版本: 一道关于c语言的简单问题,大神求教