限定次数的循环操作为啥无法实现

为啥输入任何数都是一个*,明明和书上一样。而且no-->0可以用这个格式吗

img

img

是因为第5行的while循环后面的分号的原因,这个分号让while循环没有输出星号。然后后面的putchar()函数单独执行了。

把第5行while后面的分号去掉,因为while循环的循环体需要putchar('*')输出星号; 然后把第8行的双引号改为单引号,因为putchar()函数的参数需要一个字符,修改如下:

#include <stdio.h>

int main(void){
    
    int a;
    printf("a:");
    scanf("%d",&a);
    while(a-->0)
        putchar('*'); 
    putchar('\n');
    return 0;
} 

img