在学习了数组之后,想在网上找一下答案,发现没有自己想要的,就自己写了一段。不知道全不全面,想了好久。
#include <stdio.h>
#include <math.h>
int main(void)
{
double pow( double base, double exp );
int year[10],i,j=0,k=0,l,m,a[10],b[10],c[10][10];
int temp,o=0,count=0;
for(i=10;i<=100;i++)
{
if(((pow(i,3)/1000>=1)&&(pow(i,3)/1000<=9))&&((pow(i,4)/100000>=1)&&(pow(i,4)/100000<=9))) //判断美女的年龄可能
{
year[j]=i;
printf("美女可能的年龄:%d\n",year[j]);
a[j]=pow(i,3);
printf("美女年龄的三次方:%d\n",a[j]);
b[j]=pow(i,4);
printf("美女年龄的四次方:%d\n",b[j]);
j++;
}
}
printf("\n");
for(i=0;i<j;i++) //将美女的可能年龄分别存放到对应数组
{
for(k=0;k<4;k++)
{
c[i][k]=a[i]%10;
a[i]/=10;
}
for(k=4;k<10;k++)
{
c[i][k]=b[i]%10;
b[i]/=10;
}
// for(k=0;k<10;k++)
// {
// printf("%d ",c[i][k]);
// }
}
printf("\n");
for(i=0;i<j;i++) //冒泡排序法排放美女年龄
{
for(k=0;k<10;k++)
{
for(m=k+1;m<10;m++)
{
if(c[i][k]>=c[i][m])
{
// printf("%d ",c[i][k]);
temp=c[i][k];
c[i][k]=c[i][m];
c[i][m]=temp;
}
}
}
}
for(i=0;i<j;i++) //对比年龄组成部分和下标对比
{
for(m=0;m<10;m++)
{
if(c[i][m]!=m)
{
count+=1;
}
}
if(count==0) //当下标与数字对应时输出美女年龄
{
printf("美女的年龄是: %d\n",year[i]);
}
}
return 0;
}