零K沁雪


私信TA

用户名:qczl

访问量:78058

签 名:

零K沁雪

等  级
排  名 44
经  验 12403
参赛次数 3
文章发表 35
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

解题思路:

1、可以使用gets()/scanf()获取待统计的字符。

2、scanf()获取字符的时候应该使用scanf("%[^\n]"),除了回车键全部读入。

注意事项:

参考代码:

#include<stdio.h>
#include<string.h>

void statistics(char *str, int *num_char, int *num_num, int *space_num, int *other_num)
{
	int len=0, i=0;
	len = strlen(str);
	*num_char = 0;
	*num_num = 0;
	*space_num = 0;
	*other_num = 0;
	for(i = 0; i < len; i++)
	{
		if(str[i]>='0' && str[i]<='9')
			*num_num+=1;
		else if( (str[i]>='a' && str[i]<= 'z') || (str[i]>='A' && str[i]<='Z'))
			*num_char+=1;
		else if(str[i]==' ')
			*space_num+=1;
		else
			*other_num+=1;
	}
}

int main()
{
	char Mystring[1024];
	int num_char, num_num, space_num, other_num;
	scanf("%[^\n]", Mystring);
	statistics(Mystring, &num_char, &num_num, &space_num, &other_num);
	printf("%d %d %d %d\n", num_char, num_num, space_num, other_num);
	return 0;
}


 

0.0分

39 人评分

  评论区

#include<stdio.h>
#include<ctype.h>

int main()
{
    int letter = 0,blank = 0,number = 0,others = 0,c;   
    
     while((c = getchar()) != '\n')
    {
        if(isalpha(c)
        {
            letter ++;
        }
        else if(isdigit(c))
        {
            number ++;
        }
        else if(c == ' ')
        {
            blank ++;
        }
        else
        {
            others ++;
        }
    }
    printf("%d %d %d %d\n",letter,number,blank,others);
    return 0;
}


求问一下大佬  我这个为什么会超时呀
2021-11-02 19:27:31
//没人用ctype的库? 我贴一下
#include <stdio.h>
#include <ctype.h>
#include <string.h>

void count(char str[]){
    int i=0, digit=0, alpha=0, blank=0, others=0;
    while (str[i]!='\0'){
        if(isdigit(str[i])){
            digit++;
        } else if(isblank(str[i])){
            blank++;
        } else if(isalpha(str[i])){
            alpha++;
        }else {
            others++;
        }
        i++;
    }
    printf("%d %d %d %d\n", alpha, digit, blank, others);
}

int main(int argc, char* argv[]){
    char str[100];
    gets(str);
    count(str);
    return 0;
}
2021-10-27 03:41:17
#include<stdio.h>
#include<string.h>
int count(char str[]){
	int num=0,alpha=0,space=0,others=0;
	int sum=strlen(str);
	for(int i=0;i<sum;i++){
	if(('A'<str[i]&&str[i]<'Z')||('a'<str[i]&str[i]<'z')){
			alpha++;
		}
		else if('0'<str[i]&&str[i]<'9'){
			num++;
		}
    	else if(str[i]==' '){
			space++;
		}
		else
			others++;
	}
	printf("%d %d %d %d",alpha,num,space,others);
}
int main(){
    char a[1024];
    scanf("%[^\n]",a);
    count(a);
}

我devc出答案了 但是错误50 啥意思
2021-10-19 18:25:59
void statistics(char a[]);
int main(void)
{
	char a[1000];
	
    gets(a);
	statistics(a);
	return 0;
	
	
 }
 void statistics(char a[])
 {
 	int letter,number,space,others=0;
 	int i;
 	for(i=0;a[i]!='\0';i++){
 		if((a[i]>='a' && a[i]<='z') || (a[i])>='A' && a[i]<='Z'){
 			letter++;
		 }else if(a[i]>='0' && a[i]<='9'){
		 	number++;
		 }else if(a[i]==' '){
		 	space++;
		 }else{
		 	others++;
		 }
	 }
	 printf("%d %d %d %d",letter,number,space,others);
  } 


为什么提交答案错误
2021-08-03 14:30:47
#include<stdio.h>
#include<string.h>

int tongji(char a[],int *c,int *n,int *b,int *o)
{
    int i,k;
    i=strlen(a);
    for(k=0;k<i;k++)
    {
        if(a[k]>'a'&&a[k]<'z'||a[k]>'A'&&a[k]<'Z')
        (*c)++;
        else if(a[k]>='0'&&a[k]<='9')
        (*n)++;
        else if(a[k]==' ')
        (*b)++;
        else
        (*o)++;
    }
   
}
int main()
{
    int c=0,n=0,b=0,o=0;
   char a[1000];
   gets(a);
   tongji(a,&c,&n,&b,&o);
    printf("%d %d %d %d",c,n,b,o);
    return 0;
}
为什么提交答案是错的
2021-05-11 16:14:51
#include<stdio.h>
#include<string.h> 

void statistics(char *p,char *pf);
int main(void)
{
	int i;
	char str[100]={0};
	char num[4]={0};
	gets(str);
	statistics(str,num);
	for(i=0; i<4; i++)
	{
		printf("%d ",num[i]);
	 } 
}
void statistics(char *p,char *pf)
{
	int i;
	for(i=0; p[i]!='\0'; i++)
	{
		if((p[i]>=65 && p[i]<=90) || (p[i]>=97 && p[i]<=122))
		{
			pf[0]++;
		}
		else if(p[i]>=48 && p[i]<=57)
		{
			pf[1]++;
		}
		else if(p[i] == 32)
		{
			pf[2]++; 
		}
		else
		{
			pf[3]++; 
		}
	}
}
2021-03-25 16:55:47
#include<stdio.h>
#include<string.h>
int fw(char a[]){
	
	int b=0,c=0,d=0,e=0;
	for(int i=0;i<strlen(a);i++){
		if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z'))
		b++;
	else if(a[i]>='0'&&a[i]<='9')
		c++;
	else if(a[i]==' ')
		d++;
	else
	e++;	
	}
	printf("%d %d %d %d",b,c,d,e);
	
}
int main()
{char a[50];
	gets(a);
	fw(a);
	return 0;
}
这为什么得50???
2020-12-04 20:25:47
#include <stdio.h>
#define N 80

int main()
{
char string[N]; 
int n[4]={0};
gets(string); 
{ 
	int i=0;
    while(string[i] != '\0')
    {
        if(string[i]>='a'&&string[i]<='z' || string[i]>='A'&&string[i]<='Z')
            n[0]++;
        else if(string[i]>='0'&&string[i]<='9')
            n[1]++;
        else if(string[i]==' ')
            n[2]++;
        else
            n[3]++;
        i++;
    }
}

printf("%d,%d,%d,%d\n",n[0],n[1],n[2],n[3]);
return 0;
}
 为什么软件运行的跟题目一样,提交是错的。
2020-10-22 21:18:31