我试图在两个循环中输出相同数量的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--;
}
}
答案 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);
}