解题思路:重点是怎么获取输入的字符串,统计可以用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.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论