while循环从用户输入的整数倒计时

时间:2017-10-13 20:54:26

标签: c while-loop

我有一个运行良好的程序,但我需要一些帮助将其转换为一个程序,而不是采用一个固定的整数并计数到0然后返回到固定的整数,取一个通过scanf输入的整数并执行此操作。

这是代码

#include <stdio.h>
int main()
{

int count = 10;
while (count >= 1)
{
    printf("%d \n", count);
    count--;
}

printf("*****\n");


while (count <= 10)
{
    printf("%d \n", count);
    count++;
}
getchar();
return 0;
}

2 个答案:

答案 0 :(得分:1)

只需用变量替换10的两个出现,然后从用户输入填充该变量。

#include <stdio.h>

int main() {

    int number;
    scanf("%d", &number);

    int count = number;
    while (count >= 1) {
        printf("%d \n", count);
        count--;
    }

    printf("*****\n");

    while (count <= number) {
        printf("%d \n", count);
        count++;
    }

    getchar();
    return 0;
}

答案 1 :(得分:0)

我可以建议以下解决方案。程序水平而不是垂直输出数字。

#include <stdio.h>

int main( void )
{
    while (1)
    {
        printf("Enter a number (0 - exit): ");

        int n;

        if (scanf("%d", &n) != 1 || (n == 0)) break;

        int i = n;

        do
        {
            printf("%d ", i);
        } while (n < 0 ? i++ : i--);

        i = 0;

        while (( n < 0 ? i-- : i++ ) != n) printf("%d ", i);

        putchar('\n');
    }

    return 0;
}

它的输出可能看起来像

Enter a number (0 - exit): 10
10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10
Enter a number (0 - exit): -10
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10
Enter a number (0 - exit): 0