解题思路:重点是怎么获取输入的字符串,统计可以用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 人评分
用筛法求之N内的素数。 (C语言代码)浏览:1386 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:631 |
printf基础练习2 (C语言代码)浏览:690 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:544 |
A+B for Input-Output Practice (VII) (C语言代码)浏览:566 |
整除的尾数 (C语言代码)浏览:853 |
马拦过河卒 (C语言代码)浏览:1213 |
1073题解浏览:652 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:469 |
整数分类 oj上总是wrong answer浏览:687 |