#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
bool cmp(char a, char b) {
return a > b;
}
void change(int number, int& a, int& b) {
char s[10];
sprintf(s, "%04d", number);
sort(s, s + 4, cmp);
sscanf(s, "%d", &a);
sort(s, s + 4);
sscanf(s, "%d", &b);
}
int main() {
const int st = 6174;
int x;
scanf("%d", &x);
do {
int a, b;
change(x, a, b);
x = a - b;
printf("%04d - %04d = %04d\n", a, b, x);
} while(x!=0 && x!=st);
return 0;
}
借助sscanf()和sprintf()会方便很多如果使用while循环,会有一组数据通不过,要换成do while#include<cstdio>#include<cstring>#include<algorithm>using namespace std;bool cmp(char a, char b) { return a > b;...