【发布时间】:2015-06-28 18:36:05
【问题描述】:
它可能已经发布在某个地方,因为它是一个项目欧拉问题,但是,我没有解决特定问题的问题,尽管我写的代码确实有问题,因为我似乎无法找错。
我的猜测是我在打印或记忆值时监督某些东西,但我不确定。无论如何,这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
int x = 999, y = 999, z = 0, w = 0, a=0, *largest = a;
for (x; x > 99; x--){
for (y; y > 99; y--){
z = x*y;
while (z != 0){
w = w * 10;
w = w + z % 10;
z = z/10;
}
if (x*y == w){
a = w;
goto stop;
}
w = 0;
}
}
stop: printf("%d\n", largest);
system("pause");
return 0;
}
我知道 a 和最大的东西不是必需的,我只是测试了很多改变所有类型的东西,使用指针等等,所以不需要过多关注代码的那部分.
【问题讨论】:
-
在创建
z的反向值之前设置w = 0;是最干净的,而不是在循环结束时在几英里之外进行。您甚至可以在for循环的主体中使用:int w = 0; int z = x * y;,从而限制变量的范围。
标签: c pointers printf iteration