Spo小橘小橘 2022-10-06 15:43 采纳率: 86.7%
浏览 45
已结题

统计字符,半对,找不到错误

img

我的思路是:进入for循环,输入值再进行判断,再输出
代码
#include<stdio.h>
int main()
{
int l=0,b=0,d=0,o=0,n,i=0;
scanf("%d",&n);
char c;
for(i=0;i<n;i++)
{
scanf("%c",&c);
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) l++;
else if(c==' '||c=='\n')b++;
else if(c>='0'&&c<='9')d++;
else o++;
}printf("letter = %d, blank = %d, digit = %d, other = %d",l,b,d,o);
return 0;
}

  • 写回答

2条回答 默认 最新

  • 四海一叶秋 2022-10-06 15:57
    关注

    第一个scanf("%d",&n);后,缓冲区残留\n给第一次scanf("%c",&c);读取了。
    你可以新建个char数组存储每次获取c的值,就知道了。
    for循环上面加上getchar();清掉残留的\n。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

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