ROG


私信TA

用户名:dotcpp0688243

访问量:5503

签 名:

等  级
排  名 2435
经  验 2310
参赛次数 0
文章发表 8
年  龄 0
在职情况 学生
学  校 广东技术师范大学
专  业 数字媒体技术

  自我简介:

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

  评论区

  • «
  • »