【问题标题】:C: Writing a loop to print the alphabet between two characters [duplicate]C:编写一个循环来打印两个字符之间的字母表[重复]
【发布时间】:2017-04-22 16:45:51
【问题描述】:

我得到了一个非常简单的任务,即编写一个程序,该程序将接收两个字符,然后使用 for() 循环打印它们之间的字母。

这是我的代码:

#include <stdio.h>
int main() {
char a, b;

printf("\nEnter the first character: ");
scanf("%c", &a);

printf("\nEnter the second character: ");
scanf("%c", &b);

for(char i = a; i <= b; i++) {
    printf("%c ", i);
}

return 0;
}

当我运行它时,系统会提示我正确输入第一个字符,但是当我按下回车键时它只运行下一个 printf() 然后终止。

编译时没有错误或警告或任何内容。我发现的另一个类似问题显然已解决,但对我也不起作用。

提前致谢。

【问题讨论】:

  • scanf("%c", &amp;b); --> scanf(" %c", &amp;b);

标签: c


【解决方案1】:

如果我正确阅读了您的代码,按回车键,您将输入第二个字符,该字符很可能(取决于环境)以13 的数值开头,它比任何字母都小,所以循环体只执行一次。

【讨论】:

    【解决方案2】:

    你必须消耗第一个scanf左边的stdin中的\n

    最快的修复

    scanf(" %c", &b);
    

    %c 之前的空格告诉scanf 在读取char 之前忽略所有空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 2021-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2022-10-24
      相关资源
      最近更新 更多