不懂哪里错了,求,后面是图片,还有两天要交了

#include<stdio.h>#include<stdlib.h>#include<math.h>const int MAX=100;struct Disk{ int Num[MAX]; int size;};Disk taNum[MAX];bool p(int a) { for(int i=2;i<sqrt((double)a)+1;i++) { if(pow((double)i,2)==a) //i^2 return true; else if(pow((double)i,2)>a) return false; } return false;}bool f(Disk ta1,Disk ta2) { return p(ta1.Num[0]+ta2.Num[ta2.size-1]);}int main(){ int i,j,k,n; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&taNum[i].Num[0]); taNum[i].size=1; } for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(f(taNum[i],taNum[j])) { for(k=0;k<taNum[i].size;k++) { taNum[j].Num[taNum[j].size+k]=taNum[i].Num[k]; } taNum[j].size=taNum[j].size+taNum[i].size; } for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(f(taNum[i],taNum[j])) { for(k=0;k<taNum[i].size;k++) { taNum[j].Num[taNum[j].size+k]=taNum[i].Num[k]; } taNum[j].size=taNum[j].size+taNum[i].size; taNum[i].size=0; break; } } } int c=0; for(i=0;i<n;i++) { if(taNum[i].size!=0) { c++; for(j=taNum[i].size-1;j>0;j--) printf("%d->",taNum[i].Num[j]); printf("%d,",taNum[i].Num[0]); } } printf("%d\n\n",c); } return 0; } }}

img
**

img
**

把代码重新格式化一下贴出来吧,这个看着实在太乱啊。可以协助调试一下