nbsp; /* 初始化 */ a[2]=8; a[3]=22; a[4]=16; a[5]=4; a[6]=10; a[7]=6; a[8]=14; a[9]=20;
if((fp=fopen("SHITI1.dat","w"))==NULL) /* 建输出结果文件 */ { printf("cannot open this file.\n"); exit(0); }
fprintf(fp,"\n%5d",ip); /* ID为序号 */ for(i=0;i<10;i++) fprintf(fp,"%5d",a[i]); fprintf(fp,"\n");
do{ for(i=0;i<10;i++) /* 数为奇加1 */ { if(a[i]%2!=0) a[i]=a[i]+1; }
for(i=0;i<9;i++) /* 向下传一半 */ b[i+1]=(a[i]+a[i+1])/2;
b[0]=(a[9]+a[0])/2;
ip++; fprintf(fp,"%5d",ip); /* 输出到文件 */ for(i=0;i<10;i++) fprintf(fp,"%5d",b[i]); fprintf(fp,"\n");
for(i=0;i<10;i++) a[i]=b[i]; /* 直到数相等 */
} while(!(a[0]==a[1]&&a[1]==a[2]&&a[2]==a[3]&&a[3]==a[4]&&a[4]==a[5]&&a[5]==a[6]&&a[6]==a[7]&&a[7]==a[8]&&a[8]==a[9]));
fclose(fp);
}
以上是我编的程序,如你能有所改进或有别的方法实现,贴出来共同学习,分享吧! [1]
< 1 > < 2 > |