Gakki的圈外男友 发表于 2021-1-11 17:31:49

作业求助!!我的代码哪里出问题了

要统计一段话中各个字母 数字 标点符号 空格出现的次数
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define LEN 500
#define CNT 60
main()
{
        char Paragraph={"agb+*/-as/*dfasdgf13412!adsg   1212!@#asdasgf3"};
        int LetterCnt={0},Length;
        int i,j,o,p,q,m,k,l;
        Length=strlen(Paragraph);
        for(i=0;i<=Length-1;i++)
        {
                if(isalpha(Paragraph))
                {
                        j=tolower(Paragraph)-'a';
                        LetterCnt++;
                }
        }
        printf("The paragraph contains:\n");
        for(i=0;i<=j-1;i++)
        {
                if(LetterCnt!=0)
                {
                        printf("%c=%d\t",i+'a',LetterCnt);
                }
                if((i+1)%7==0)
                {
                        printf("\n");
                }
        }
        printf("\n");
        for(o=0;o<=Length-1;o++)
        {
                if(isdigit(Paragraph))
                {
                        p=(Paragraph)-48;
                        LetterCnt++;
                }
        }
        printf("The number contains:\n");
        for(o=0;o<=p-1;o++)
        {
                if(LetterCnt!=0)
                {
                        printf("%c=%d\t",o+48,LetterCnt);
                }
                if((o+1)%7==0)
                {
                        printf("\n");
                }
        }
        printf("\n");
        for(q=0;q<=Length-1;q++)
        {
                if(ispunct(Paragraph))
                {
                        m=(Paragraph)-33;
                        LetterCnt++;
                }
        }
        printf("The paragraph contains:\n");
        for(q=0;q<=m-1;q++)
        {
                if(LetterCnt!=0)
                {
                        printf("%c=%d\t",q+33,LetterCnt);
                }
                if((q+1)%7==0)
                {
                        printf("\n");
                }
        }
        printf("\n");
        for(k=0;k<=Length-1;k++)
        {
                if(ispunct(Paragraph))
                {
                        l=(Paragraph)-32;
                        LetterCnt++;
                }
        }
        printf("The paragraph contains:\n");
        for(k=0;k<=l-1;k++)
        {
                if(LetterCnt!=0)
                {
                        printf("%c=%d\t",k+32,LetterCnt);
                }
                if((k+1)%7==0)
                {
                        printf("\n");
                }
        }
        printf("\n");
}

Gakki的圈外男友 发表于 2021-1-11 17:33:00

运行之后只有字母是对的 数字 标点和空格都不对 sad

jackz007 发表于 2021-1-11 18:07:56

         楼主,试一下这个代码
#include <stdio.h>

int main(void)
{
      char c                                                               ;
      int d = {0} , i                                                 ;
      for(i = 0 ; (c = getchar()) != '\n' ; i ++) d ++                  ;
      for(i = 0 ; i < 128 ; i ++) if(d) printf("%c : %2d\n" , i , d) ;
}
页: [1]
查看完整版本: 作业求助!!我的代码哪里出问题了