#include<stdio.h>
int main()
{
char a[50];
int i,bk=0,nm=0,su=0,lo=0,df=0;
printf("请不断输入字符,输入“#”会直接结束读取(最多容纳50个字符):");
for(i=0;a[i]!='#';i++)
{
scanf("%c,",&a[i]);
if(a[i]=='#')
break;
}
for(i=0;i>=0;i++)
{
if(a[i]>='a'&&a[i]<='z')
{
bk++;
}
else if(a[i]>='A'&&a[i]<='Z')
{
nm++;
}
if(a[i]==' ')
{
su++;
}
else if(a[i]>='1'&&a[i]<='9')
{
lo++;
}
else
{
df++;
}
}
printf("空格有%d个\n小写字母有%d个\n大写字母有%d个\n数字字符有%d个\n其他字符有%d个。",su,bk,nm,lo,df);
}
为什么这个代码输出没有结果?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 加油吧,小杜 2022-10-22 17:19关注
你有几个问题
1.
a[i]还没有存储值。所以可能会导致程序奔溃
2.
这个循环会变成死循环
改良代码如下char a[50]; int i,bk=0,nm=0,su=0,lo=0,df=0; printf("请不断输入字符,输入“#”会直接结束读取(最多容纳50个字符):"); int i_Count=0; for(int i=0;i<50;++i) { char ch; scanf("%c,",&ch); if(ch=='#') break; a[i]=ch; i_Count++; } for(i=0;i<i_Count;i++) { if(a[i]>='a'&&a[i]<='z') { bk++; } else if(a[i]>='A'&&a[i]<='Z') { nm++; } if(a[i]==' ') { su++; } else if(a[i]>='1'&&a[i]<='9') { lo++; } else { df++; } } printf("空格有%d个\n小写字母有%d个\n大写字母有%d个\n数字字符有%d个\n其他字符有%d个。",su,bk,nm,lo,df);
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向
- ¥15 如何用python向钉钉机器人发送可以放大的图片?