1、答案:19头文件:int sxhs(int *p,int num) int *v,m=0,a,b,c; for(v=p;vp+500;v+) a=*v/100; b=*v/10%10; c=*v%10; if(*v=a*a*a+b*b*b+c*c*c) m+; return m;主程序:#include stdlib.hmath.h#includeFnumber.h#define N 500int main() FILE *fp; int arrayN,n; fp = fopen(d:dat2.dat,r); if(NULL =fp) printf(Can not open this file
2、!n exit(0); for(int i=0;iN;i+) fscanf(fp,%d,array+i); n=sxhs(array,N); FILE *mp; mp = fopen(D:dat6.datw if(NULL =mp) fprintf(mp,%dn,n); printf( fclose(fp); fclose(mp); return 0;2、已知文件dat2.dat中存放了500个三位整型数据。求数组元素中 “水仙花数”的和,并把该函数放在头文件Fnumber.h中以便在主函数中调用该函数。3)把“水仙花数”的和显示到屏幕上,同时输出到数据文件d:6315 m+=*v;3、已知文
3、件dat3.dat中存放了500个五位整型数据。2)编写函数int hws(int *p,int num)求数组元素中回文数的个数,并把该函数放在头文件Fnumber.h中以便在主函数中调用该函数。(回文数的含义是:从左向右读与从右向左读是相同的,即对称。如:12321。3)把回文数及回文数的个数显示到屏幕上,同时输出到数据文件d:39693 33233 21312 23432 个数:4头文件:int hws(int *p,int num) int *v,m=0,a,b,c,d; a=*v/10000; b=*v/1000%10; c=*v/10%10; d=*v%10; if(a=d&b=c
4、) printf(%d ,*v); dat3.dat n=hws(array,N);4、已知文件dat3.dat中存放了500个五位整型数据。求数组元素中回文数的和,并把该函数放在头文件Fnumber.h中以便在主函数中调用该函数。3)把回文数及回文数的和显示到屏幕上,同时输出到数据文件d:39693 33233 21312 23432 和:1176705、已知文件dat2.dat中存放了500个整型数据。2)编写函数int ws(int *p,int num)求数组中“完数”的个数,并把该函数放在头文件Fnumber.h中以便在主函数中调用该函数。(完数的含义是:该数的所有因子之和等于该数。例6=1+2+3。3)把 “完数”及“完数”的个数显示到屏幕上,同时输出到数据文件d:496 496 496 496 496 496 个数:6int ws(int *p,int num) int *v,m=0,s,i; s=0; for(i=1;*v;i+) if(*v%i=0) s+=i; if(*v=s) n=ws(array,N);6、已知文件dat2.dat中存放了500个整型数据。