m0_64318675 2022-05-26 04:44 采纳率: 100%
浏览 136
已结题

C语言指针问题,请各位看看

  1. 函数fun完成的是对一个给定的字符串,统计其中数字、大小写字母及其他符号的个数的功能,在主程序中输入字符串并调用函数fun,接收并输出返回的结果。
    如下就是完成这个题目的程序,但其中有一些错误,请调试通过并将错误的语句改正填写在表格中。
    #include <stdio.h>
    void main()
    {
     int d,c,t;
     char str[80];
     void fun(char s[],int *p1,int *p2,int *p3);
     printf("input a string:");
     gets(str);
     fun(str[80],d,c,t);
     printf("str=%s  digit=%d  char=%d  other=%d\n",str,d,c,t);
    
    }
    void fun(char ch[ ], int *pd,int *pc,int *pt)
    {
     int k;
     pd=pc=pt=0;
     for (k=0;ch[k]!='\0';k++)
     {
         if ((ch[k]>='A'&&ch[k]<='Z')&&(ch[k]>='a'&&ch[k]<='z'))  (*pc)++;
         else if (ch[k]>='0'&&ch[k]<='9')                      (*pd)++;
         else                                             (*pt)++;
     }
    
    }
  • 写回答

6条回答 默认 最新

  • 树下等苹果 2022-05-26 08:38
    关注

    帮你调试好了

    #include <stdio.h>
    void main()
    {
        int d, c, t;
        char str[80];
        void fun(char s[], int* p1, int* p2, int* p3);
        printf("input a string:");
        gets(str);
        fun(str, &d, &c, &t);
        printf("str=%s digit=%d char=%d other=%d\n", str, d, c, t);
    }
    void fun(char ch[], int* pd, int* pc, int* pt)
    {
        int k;
        *pd = *pc = *pt = 0;
        for (k = 0; ch[k] != '\0'; k++)
        {
            if ((ch[k] >= 'A' && ch[k] <= 'Z') || (ch[k] >= 'a' && ch[k] <= 'z'))
                (*pc)++;
            else if (ch[k] >= '0' && ch[k] <= '9') 
                (*pd)++;
            else 
                (*pt)++;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月26日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号