忧默的小男孩 2022-02-21 14:17 采纳率: 94.4%
浏览 91
已结题

能不能帮我看一下我写的代码问题在哪?


#include<stdio.h>
int main(void)
{
    /*********Begin*********/
    int n,number,i,k,j,p;
     number=0,p=0;
    char z[1000];     /* 定义一个字符数为1000的数组,防止输入字符串过长溢出*/

    scanf("%d",&n);   /*输入代表测试实例个数的n*/
    
    for(j=0;j<n;j++)  /*这几行代码的作用是输入测试的字符,当输完一串之后,输出换行符换行,继续输入下一串,直到n行字符串全部输入完成*/
    scanf("%s",&z);
    printf("\n");
   

    for(k=0;k<n;k++)   /*这个for语句的作用是把n行字符串全部执行完*/
    {    
        i=p;            /*这个语句的作用是当执行完某一行字符串时,可以在数组中接着上一行的数组地址往下执行,而不是重新从数组z[0]开始执行*/
    for(i=p;i<1000;i++)    
    {   p=i;            /*for语句的第一个语句只执行一次,之后i会自增,作用和上面那一条一样*/
    if(z[i]!='\0')     /*如果为换行符,则跳出此循环*/
    {
        if((z[i]>=0 && z[i]<=9))
        {
            number=number+1;
        }
    }
    else 
     p=p+1continue;
    }
    printf("%d\n",number);
    }

    /*********End**********/
    return 0;
}

img

img

img

  • 写回答

6条回答 默认 最新

  • fuill 2022-02-21 20:28
    关注

    1,找数字个数只用遍历一次字符串
    2,判断数字字符要加单引号''

    #include<stdio.h>
    int main()
    {
        /*********Begin*********/
        char t[1000];
        int j,count,n;
        scanf("%d",&n);
        while(n--)
        {
            scanf("%s",t);
            count=0;
            for(j=0; t[j]!='\0'; j++) //遍历字符串
            {
                if(t[j]<='9'&&t[j]>='0') //判断数字字符要加''
                {
                    count++;
                }
            }
            printf("%d\n",count);
        }
        /*********End**********/
        return 1;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月24日
  • 已采纳回答 2月24日
  • 创建了问题 2月21日

悬赏问题

  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000