解题思路:重点是怎么获取输入的字符串,统计可以用ASCII码统计
注意事项:我自己尝试了两种获取输入的方法
1、//需要输入数据后有换行符,不然会进入死循环直到数组越界
ch=getchar(); int size = 0; for(int i=0;ch!='\n';i++) { arr[i] = ch; ch = getchar(); size = i + 1; }
用这个解这道题,只得50分,即第二道题对了。说明第二道题题目输入带了换行符才对了
但是在我们自己输入的时候是会有换行符的,所以这个在这道题目不可以用
2、
//不需要换行符也可以自己结束输入
//如果有换行符,也会被读入,遇到空格不会停止读取
char arr[100]={'0'}; fgets(arr,sizeof(arr),stdin); int size=strlen(arr);
但还是只可以得50分,即第一道题对了。
怎么解决?
用第二种方式获取输入,然后加一下判断,判断是否为换行符,是就跳过。
这样的话就可以的100分
参考代码:
#include#includevoid test44(char arr[],int size) { int num1, num2, num3,num4; num1 = num2 = num3=num4 = 0; for(int i=0;i=97&&arr[i]=65&&arr[i]=49&&arr[i]<=57) { num2++; } else if(arr[i]==32) { num3++; } else { if(arr[i]!='\n')num4++;//判断是否有换行符,有跳过 } } printf("%d %d %d %d",num1,num2,num3,num4); } int main() { char arr[100]={'0'}; fgets(arr,sizeof(arr),stdin); int size=strlen(arr); test44(arr,size); return 0; }
0.0分
3 人评分
C二级辅导-计负均正 (C语言代码)浏览:1192 |
C语言程序设计教程(第三版)课后习题6.2 (C++代码)为什么回车不算字符浏览:1185 |
C语言训练-求矩阵的两对角线上的元素之和 (C++代码)浏览:801 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:802 |
C语言程序设计教程(第三版)课后习题9.1 (C++代码)浏览:560 |
C语言训练-舍罕王的失算 (C语言代码)浏览:1033 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:629 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:595 |
字符串问题 (C语言代码)浏览:1500 |
【亲和数】 (C语言代码)浏览:501 |