我试图编写一个程序,如果我输入一个整数,程序会找出其中更大的数字并将较小的数字从中减去。我已经完成了这个部分。
问题是无限循环的部分。
我尝试使用while循环使输入两个整数
不停地打印,并在至少输入一个字符时break
。
2 @
,它就会退出。但我找不到把
break;
放在代码中的正确位置,因此每当我输入一个字符时,它都会创建一个无限循环。是否有任何方法在这段代码中添加break?我谦虚地请求建议... 以下是我无法放置
break
的代码:
(顺便说一下,我在while条件中使用sizeof(i)==4 || sizeof(j)==4
是为了只输入整数,因为整数的大小为4)
int main()
{
int i, j;
int result;
while (sizeof(i)==4 || sizeof(j)==4){
printf("type in two integers : ");
scanf("%d %d", &i, &j);
if (i < j) {
result = j - i;
}
else if (j < i){
result = i - j;
}
printf("%d\n", result);
}
return 0;
}
底部代码是我尝试使用break
但失败了(它一直创建一个无限循环)...
int main()
{
int i, j;
int result;
while (sizeof(i)==4 || sizeof(j)==4){
if (sizeof(i) == 4 || sizeof(j) == 4) {
printf("type in two integers : ");
scanf("%d %d", &i, &j);
if (i < j) {
result = j - i;
}
else if (j < i) {
result = i - j;
}
printf("%d\n", result);
}
else
break;
}
return 0;
}
这里有一段代码,我摆脱了 sizeof
并使用了 while(1)
,虽然 break
没有起作用,但实际上并没有太大的变化...
int main()
{
int i, j;
int result;
while (1){
printf("type in two integers : ");
scanf("%d %d", &i, &j);
if (i < j) {
result = j - i;
}
else if (j < i) {
result = i - j;
}
printf("%d\n", result);
}
return 0;
}
while (2==scanf("%d %d", &i, &j))
语句。如果我正确理解了您的问题,它应该会有所帮助。 - Yunnosch