关于数学黑洞6174(c程序)拜托各位大神假设有一个各位数字各不相同的四位数,把所有数字从大到小排序后得到A,从小到大排序后得到B,然后用A-B替换原来这个数,并且继续操作.例如:从1234出发,一次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174.有趣的是,7641-1467=6174,回到了他自己 要输出变成6174的步数 请看我写的程序,为什么无法运行 #include #include main() { int m,n,s,j,k; int a[3]; k=0; printf("Please type the number:\n"); scanf("%d",&n); if((n%1111==0)&&(n>9999)&&(na[2]) { m=a[0]; a[0]=a[2]; a[1]=m; } if(a[0]>a[3]) { m=a[0]; a[0]=a[3]; a[3]=m; } if(a[1]>a[2]) { m=a[1]; a[1]=a[
关于数学黑洞6174(c程序)拜托各位大神
假设有一个各位数字各不相同的四位数,把所有数字从大到小排序后得到A,从小到大排序后得到B,然后用A-B替换原来这个数,并且继续操作.例如:从1234出发,一次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174.有趣的是,7641-1467=6174,回到了他自己 要输出变成6174的步数 请看我写的程序,为什么无法运行 #include #include main() { int m,n,s,j,k; int a[3]; k=0; printf("Please type the number:\n"); scanf("%d",&n); if((n%1111==0)&&(n>9999)&&(na[2]) { m=a[0]; a[0]=a[2]; a[1]=m; } if(a[0]>a[3]) { m=a[0]; a[0]=a[3]; a[3]=m; } if(a[1]>a[2]) { m=a[1]; a[1]=a[2]; a[2]=m; } if(a[1]>a[3]) { m=a[1]; a[1]=a[3]; a[3]=m; } if(a[2]>a[3]) { m=a[2]; a[2]=a[3]; a[3]=m; } s=a[3]*1000+a[2]*100+a[1]*10+a[0]-a[0]*1000-a[1]*100-a[2]*10-a[3]; } printf("%d %d",n,k); end:system("pause"); return 0; }
问题出在这一步:for(j=0;j9999)&&(n