我怎么能在C中继续这个循环

时间:2016-03-05 04:15:46

标签: c loops for-loop while-loop

我试图在两个循环中输出相同数量的printf语句,我必须使用for和while。不幸的是,我的第二个循环得到了无限循环。我在第二次循环中做错了什么?

#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS

int main()
{
    int x,c,v,b;
    printf("Please enter a number between 1 and 25 \n");
    scanf_s("%d",&x,&c);

    for (x != 0; x--;)
    {

        printf("I'd rather be doing something else \n");
    }
    while (c!=0 ) {
        printf("Programming is easy");
        c--;
    }
}

1 个答案:

答案 0 :(得分:1)

scanf_s("%d",&x,&c);

在此scanf中,您只获得一个值 这里变量c正在获得一些垃圾值,因此它可能会运行很长一段时间,你认为它是无限循环。
使用

scanf_s("%d %d",&x,&c);

根据循环语法。

for(variable initialization; condition; variable update)  

在您的代码中,您已经拥有变量x的值 条件检查x != 0
变量更新x--

所以它应该是

for( ;  x != 0; x--)

修改
如果用户输入-1以停止,我将如何让用户提示输入一系列数字?

您可以使用的简单代码是。

scanf("%d,&a);
while(a != -1)
{
    //do work here
    //
    //
    //-----
    scanf("%d,&a);
}