#include <stdio.h> int main() { int i=0,j=0,k=0; for(;i<=100;i++) { for(;j<=50;j++) { k=90-i-j; if((15*k+10*j+5*i==500)&&(i+j+k==90)){ printf("%d %d %d\n",k,j,i); } } } return 0; }这个代码为什么不输出结果
时间: 2023-12-05 18:05:19 浏览: 69
#include <stdio.h>
4星 · 用户满意度95%
这段代码的问题在于第二个for循环中的变量j没有被重置为0,导致第二次循环时,j的初始值为50,不满足j<=50的条件,因此第二次循环不会被执行。这样,后面的语句就无法执行,导致没有输出结果。
解决这个问题的方法很简单,只需要在外层循环的末尾加上j=0,即可将j重置为0,使得内层循环可以重新执行。修改后的代码如下:
```c
#include <stdio.h>
int main() {
int i=0,j=0,k=0;
for(;i<=100;i++) {
for(;j<=50;j++) {
k=90-i-j;
if((15*k+10*j+5*i==500)&&(i+j+k==90)){
printf("%d %d %d\n",k,j,i);
}
}
j=0; // 添加这行代码即可
}
return 0;
}
```
这样,程序就可以输出正确的结果了。
阅读全文