一道蓝桥杯C语言的题目,帮忙看一下我自己写的程序哪里错了。

美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:
“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请你推算一下,他当时到底有多少岁。
#include<stdio.h>
void main()
{
int i,j,k,num;
int a[20];
for(i=18;i<=21;i++)
{
num=i*i*i*1000000+i*i*i*i;
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
{
a[k]=num%10;
num=num/10;
if(j==a[k])
break;
}
printf("His age is:%d.\n",&i);

}
return 0;
}

第1个回答  推荐于2016-07-14
printf("His age is:%d.\n",&i);应为printf("His age is:%d.\n",i);

void main()应为int main()追问

我又改了一下程序,但是还是得不到答案,可以帮我看一下吗?

追答

#include
int main(){
int i,j,t,a[10];
long long num;
for(i=18;i0){
if(a[num%10]){
t=0;break;}
else a[num%10]=1;
num/=10;}
if(t)printf("His age is:%d.\n",i);}
return 0;}
/*MODE BY TXJ*/

本回答被提问者采纳