这程序哪有错?感觉。没错啊该怎么解决

这程序哪有错?感觉。。。没错啊!
本帖最后由 abc594986308 于 2013-10-04 15:14:20 编辑
班里来了一名新同学,很喜欢数学,同学们问他年龄的时候,他这样说:“我的年龄的平方是个三位数,立方是个四位数,四次方是个六位数。三次方和四次方正好用遍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