C语言程序设计,主函数已经填好了;求帮忙编写一下子函数,谢谢。

2025-04-26 19:55:18
推荐回答(1个)
回答1:

# include 
# include
# include 
int fun(int yms[][3])
  
{
 
 /*****************************PROGRAM**********************/
 int a,b,c,flag[10]={0};
 unsigned i,j=0;
 char mystring[20];
 for(a=10;a<=999;a++)
 {
  for(b=999;b<9999;b++)
  {
   c=a+b;
   sprintf(mystring,"%d%d%d",a,b,c);
   if((strlen(mystring)==10)&&(c<10000))
   {
    for(i=0;i<10;i++)
    {
     flag[(mystring[i]-'0')]=1;
    }
    for(i=0;i<10;i++)
    {
     if(flag[i]!=1)
     {
      break;
     }
    }
    if(i==10)
    {
     yms[j][0]=a;
     yms[j][1]=b;
     yms[j++][2]=c;
    }
   }
   for(i=0;i<10;i++)
   {
    flag[i]=0;
   }
  }
 }
 return j;  
 /**************************END***************************/
}
int main()
{
 
 int yms[10000][3],i,n;
 
 FILE *fp;
 
 n=fun(yms);
 
 if((fp=fopen("data.txt","w"))==NULL)
  
 {
  
  printf("File open error\n");
  
  exit(0);
  
 }
 
 for(i=0;i  
 {
  
  printf("%3d+%4d=%5d\n",yms[i][0],yms[i][1],yms[i][2]);
  
  fprintf(fp,"%3d+%4d=%5d\n",yms[i][0],yms[i][1],yms[i][2]);
  
 }
 
 printf("一共有%d\n",n);
 
 fprintf(fp,"一共有%d\n",n);
 
 fclose(fp);
 
 return 0;
 
}