#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+1; continue;
}
printf("%d\n",number);
}
/*********End**********/
return 0;
}
能不能帮我看一下我写的代码问题在哪?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥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