m0_73778095 2022-09-27 18:44 采纳率: 88.9%
浏览 16
已结题

请问这到底是怎么回事?

想要让程序分别打印出字母,空格,数字和其他字符的个数,但是程序写了好久都运行失败,用f10检查时发现程序每次在while里要么读到if的条件语句那一行后if所带的语句没有读就直接跳过,要么就直接全部跳过,而且一直在while里面循环,导致程序没有输出结果就直接结束了
#include<stdio.h>
int main()
{
char sen;
int a = 0, b = 0, c = 0, d = 0;
printf("请输入一串字符:");
sen = getchar();
while ((sen = getchar()) != '\n')
{
if (sen >= 'a' && sen <= 'z' || sen >= 'A' && sen <= 'Z')
a++;
else if (sen >= ' ')
b++;
else if (sen >= '0' && sen <= '9')
c++;
else d++;
}
printf("字母个数;%d\n空格个数%d\n数字个数:%d\n其他字符个数:%d", a, b, c, d);
return 0;
}
这是后面改完能正常运行的,但是我还是不明白,while后面为什么要用sen=getchar(),如果我用scanf去输入字符串,这里直接while(sen!='\n')就又不行,还有为什么要用\n?

  • 写回答

1条回答 默认 最新

  • .魚肉 2022-09-27 18:50
    关注

    这里是双等号

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探