询问用户1到15之间的数字(使用while循环检查)并打印一排那么多星?

时间:2016-11-21 00:46:01

标签: c

如果用户输入5,则应打印

* * * * *

这是我到目前为止所拥有的。请帮忙。告诉我有什么问题。输出只保持打印*。它不会停止。

    //declare variables 
    int star;
    int num;

    printf("Enter a number between 1 and 15: ");
    scanf("%i", &num);
    while(num<1||num>15){
    printf("Invalid input\nPlease re-enter: ");
    }
    for(star=num;num<15;num--){
    printf("* ");
    }

2 个答案:

答案 0 :(得分:2)

按以下方式编写第二个循环

while ( num-- ) printf("* ");

第一个循环必须有scanf语句

int num = 0;

printf("Enter a number between 1 and 15: ");

while( scanf("%i", &num) == 1 && ( num<1||num>15 )){
    printf("Invalid input\nPlease re-enter: ");
    num = 0;
}

结果您将拥有以下代码

int num = 0;

printf("Enter a number between 1 and 15: ");

while( scanf("%i", &num) == 1 && ( num < 1 || num > 15 ) ){
    printf("Invalid input\nPlease re-enter: ");
    num = 0;
}

while ( num-- ) printf("* ");

答案 1 :(得分:0)

试试这段代码。

    int num,i;
    printf("Enter a number between 1 and 15: ");
    scanf("%d", &num);
    while(num<1||num>15){
    printf("Invalid input\nPlease re-enter: ");
    }
    for (i=0;i<num;i++)
    {
      printf("*");
    }