以下代码未输出所需结果。它只是通过n迭代,而不是y。为什么以及如何解决它?
int product(int m,int n){
int x,p;
while(m>=100){
while(n>=100){
printf("Value of m= %d and n=%d\n",m,n );
x=m*n;
p=palindrome(x);
if (p==0)
{
printf("These two numbers are %d and %d\n",m,n );
}
n--;
}
m--;
}
return 0;
}
答案 0 :(得分:4)
因为'n'不再是> = 100.因此外部循环迭代但在第一个循环之后永远不会进入内部。
解决方案: 小心!!!! - 如果你在线执行它会杀死你的浏览器:)
int product(int m,int n){
int x,p, savedn = n;
while(m>=100){
while(n>=100){
printf("Value of m= %d and n=%d\n",m,n );
x=m*n;
p=palindrome(x);
if (p==0)
{
printf("These two numbers are %d and %d\n",m,n );
}
n--;
}
m--;
n = savedn;
}
return 0;
}