这个题就是一整个麻烦住了 难倒是不难
写一下思路:把输入的数一个一个分开存进数组里面
然后再计算
还有do while的注意事项 就是while语句为真就一执行循环体
为假就不执行
while(b!=6174&&b!=0)
中间不能用或
#include<iostream>
#include<algorithm>
using namespace std;
int m[4];
int main()
{
int num,b;
cin>>num;
for(int i=0;i<4;++i)
{
m[i]=num%10;
num/=10;
}
do
{
sort(m,m+4);
int s1=0,s2=0;
for(int i=0;i<4;++i) s1=s1*10+m[i];
for(int i=3;i>=0;--i) s2=s2*10+m[i];
b=s2-s1;
int n=b;
printf("%04d - %04d = %04d\n",s2,s1,n);
for(int i=0;i<4;++i)
{
m[i]=n%10;
n/=10;
}
}while(b!=6174&&b!=0);
return 0;
}