这程序哪有错?感觉。没错啊该怎么解决
这程序哪有错?感觉。。。没错啊!
班里来了一名新同学,很喜欢数学,同学们问他年龄的时候,他这样说:“我的年龄的平方是个三位数,立方是个四位数,四次方是个六位数。三次方和四次方正好用遍0--9这10个数字,那么猜猜我多大?”。。
本人编写程序如下。。
#include<stdio.h>
int main(void)
{
int age = 18;
int x;
int y;
int z;
int a[10],i,t,j;
int s[10]={0,1,2,3,4,5,6,7,8,9};
do{
y = age * age * age ;
for(i = 0 ; i <= 3 ; i++)
{
a[i] = y % 10;
y /= 10;
}
z = age * age * age * age;
for(i = 4 ; i <= 9 ; i++)
{
a[i] = z % 10;
z /= 10;
}
for(i=0;i<9;i++) /* 冒泡法排序 */
for(j=0;j<10-i-1;j++)
if(a[j]>a[j+1])
{
t=a[j];/* 交换a[i]和a[j] */
a[j]=a[j+1];
a[j+1]=t;
}
for(i = 0 ; i <= 9 ; i++)
{
if (a[i] == s[i])
printf("这位同学的年龄是%d\n",age);
break;
}
age++;
}
while(age <= 21);
}
------解决方案--------------------
试试:将
改为:
班里来了一名新同学,很喜欢数学,同学们问他年龄的时候,他这样说:“我的年龄的平方是个三位数,立方是个四位数,四次方是个六位数。三次方和四次方正好用遍0--9这10个数字,那么猜猜我多大?”。。
本人编写程序如下。。
#include<stdio.h>
int main(void)
{
int age = 18;
int x;
int y;
int z;
int a[10],i,t,j;
int s[10]={0,1,2,3,4,5,6,7,8,9};
do{
y = age * age * age ;
for(i = 0 ; i <= 3 ; i++)
{
a[i] = y % 10;
y /= 10;
}
z = age * age * age * age;
for(i = 4 ; i <= 9 ; i++)
{
a[i] = z % 10;
z /= 10;
}
for(i=0;i<9;i++) /* 冒泡法排序 */
for(j=0;j<10-i-1;j++)
if(a[j]>a[j+1])
{
t=a[j];/* 交换a[i]和a[j] */
a[j]=a[j+1];
a[j+1]=t;
}
for(i = 0 ; i <= 9 ; i++)
{
if (a[i] == s[i])
printf("这位同学的年龄是%d\n",age);
break;
}
age++;
}
while(age <= 21);
}
c
------解决方案--------------------
试试:将
for(i = 0 ; i <= 9 ; i++)
{
if (a[i] == s[i])
printf("这位同学的年龄是%d\n",age);
break;
}
改为:
for(i = 0 ; i <= 9 ; i++)
{
if (a[i] == s[i])
;
else