创建一个打印出前八个[8] automorphic numbers的程序。必须完成输出
在main()
函数中。
这是我工作的代码:
#include <stdio.h>
#include <conio.h>
main() {
int automorphic[8];
int n;
printf("\t\t\tAUTOMORPHIC\n\n\n");
for(n=1; n<8; n++ ){
if (n*n%10==n || n*n%100==n || n*n%1000==n);
}
printf("\t%d\n\n", automorphic [n]);
getch();
return 0;
}
我不明白为什么它只打印0?我的代码中缺少什么吗?或者我根本不做正确的事情?
答案 0 :(得分:1)
你很亲密,但并不完全。
您只测试1到8的整数以获取自动属性。该问题要求前8个自守数,而不是小于8的数字是自守的。
如果条件为真,您的if
语句不会执行任何操作。
您正在打印automorphic[n]
的值,但不在automorphic
数组中设置任何值。此外,在printf
执行时,n
将为8,因为for
循环已经完成。
答案 1 :(得分:1)
由于:
int main() {
long automorphic [8];
long i;
int n;
printf("\t\t\tAUTOMORPHIC\n\n\n");
i= 0 ;
n= 0 ;
while( n < 8 ) {
if( i*i%10==i || i*i%100==i || i*i%1000==i || i*i%10000==i || i*i%100000==i ) {
automorphic[n]= i ;
n++;
}
i++;
}
for(n= 0 ; n < 8 ; n++ ) {
printf("\t%d\n\n", automorphic[n] );
}
getch();
return 0;
}
结果应该是:
0
1
5
6
25
76
376
625