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日

悬赏问题

  • ¥50 matlab,文献复现
  • ¥20 寻找Flink CDC指导,有偿咨询
  • ¥15 cruise如何仿真不同温度下车辆的经济性?
  • ¥20 扑克牌游戏的完整代码
  • ¥88 求帮安装Python架构的vnpy
  • ¥20 逻辑回归法分析品牌知名度和购买意向
  • ¥15 华为云主机-异常连接
  • ¥50 vue 成绩列表 输入成绩,并统计各分数段人数
  • ¥20 请教怎么绕过这个卡密系统 大家交流一下
  • ¥15 设计数字电路得到要求结果