任务和代码:
/*
*Copyright (c)2017 CSDN学院
*All rights reserved
*文件名称:main.c
*作者: Osseyda
完成日期:2017.9.23
*版本号:v2.
*
*问题描述:黑猫警长在犯罪现场发现了一些血迹,现已经委托检验机构确定了血型,需要统计各种血型的样本数目。
血型序列(A/B/O/C,C代表AB型血,输入以X结束)
输入样例:ABCAOCOAOOBX
*问题输出:各种血型的数量 输出样例:A:3 B:2 O:4 AB:2
*/
#include <stdio.h>
int main(){
char i;
int a=0,b=0,o=0,c=0;
printf("输入血型序列:");
while((i=getchar())!='X'){
switch(i){
case 'A':
a++;
break;
case 'B':
b++;
break;
case 'O':
o++;
break;
case 'C':
c++;
break;
}
}
printf("A:%d B:%d O:%d AB:%d",a,b,o,c);
return 0;
}
运行结果:
知识点总结:
1,用循环处理文字;2.getchar(),putchar()函数的使用;3.多分枝结构使用switch语句
心得:
1.我做这道题的思路是,先把循环结构搭建好,然后再去处理里面的信息并想到用switch语句
2.很久没用switch语句,导致一开始没有break语句,故输出结果是其前面的累加
3.case语句中的字符可以是ASCII中对应的十进制数