欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实验4-1-12 黑洞数 (20分)

程序员文章站 2022-03-13 13:37:53
...

实验4-1-12 黑洞数 (20分)输入样例:

123
输出样例:

1: 321 - 123 = 198
2: 981 - 189 = 792
3: 972 - 279 = 693
4: 963 - 369 = 594
5: 954 - 459 = 495

#include<stdio.h>
void max (int* a,int* b,int* c);
int main(void){
    int a,b,c,n,m=0,i=1;
    scanf("%d",&n);
    
   do{
        
        a=n%10;
        b=n%100/10;
        c=n/100;
        max (&a,&b,&c);    //将a,b,c由小到大排序
        m=a*100+b*10+c;	  //组成最小的数
        n=c*100+b*10+a;     //组成最大的数
        printf("%d: %d - %d = %d\n",i,n,m,n-m);
        i++;	//计数
        n-=m;
        if(!n) break;
    } while(n!=495);

    return 0;
}
/*借助位运算交换两整数的值*/
void max (int* a,int* b,int* c){
    
    if(*a>*b) *a ^=*b ^=*a ^=*b;
    if(*a>*c) *a ^=*c ^=*a ^=*c;
    if(*c<*b) *b ^=*c ^=*b ^=*c;
}