卡在C中的乘法表中

Ude*_* D. 3 c

我是C编程的新手.我试图编写一个接受用户整数的程序,并将其乘法表显示为10倍.这是我的计划:

#include <stdio.h>

int main ()
{
        int number;
        int count = 1;
        int sum;

        printf("Enter a number to display its table: ");
        scanf(" %i ", &number);

        while (count <=10)
                {
                    sum = number * count;
                    printf("%i x %i = %i\n", number, count, sum);
                    count += 1;
                }
return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译成功完成,但是当我执行输出文件时,没有任何反应,终端无所事事,我要按ctrl + c退出..

我的输出

Jac*_*ing 8

这是由于scanf命令中使用的空格.

如果用它替换它

scanf("%i", &number);
Run Code Online (Sandbox Code Playgroud)

你得到即时回应.


Som*_*ude 7

使用您的scanf格式" %i ",该scanf功能将读取(并跳过)可能的前导空格,因为您在格式中占据领先空间.

然后它将读取整数.

然后,由于尾随空间,它将读取并丢弃空间,直到找到非空间输入.

由于之后没有非空格输入,因此scanf将阻止直到您给出一些非空间输入.

只需在格式中没有任何空格即可解决.或者输入一些额外的虚拟输入(后跟Enter).