黑洞数
一、问题描述:


二、设计思路:

三、程序流程图:

四、代码实现:
#include<stdio.h> #include<math.h> int main() { int a,b,c; int x,j,h; int max,min; int maxof3(int a,int b,int c);//函数的原型声明 int minof3(int a,int b,int c);//函数的原型声明 printf("请输入一个三位数来求它的黑洞数:"); scanf("%d",&x); a=x/100%10; b=x/10%10; c=x%10; j=maxof3(a,b,c)-minof3(a,b,c);//此时传参进去 for(int k=0;;k++)//注意后面要写break进行跳出 { h=j;//转存记录上一次的最大值与最小值之差 a=j/100%10; b=j/10%10; c=j%10; max=maxof3(a,b,c); min=minof3(a,b,c); j=max-min; if(j==h)//两次差相等则为黑洞数 { printf("%d\n",j); break; } } return 0; } int maxof3(int a,int b,int c)//求三位数重排后的最大值 { int t; if(a<b){t=a;a=b;b=t;} if(b<c){t=b;b=c;c=t;} if(a<c){t=a;a=c;c=t;} return (a*100+b*10+c); } int minof3(int a,int b,int c)//求三位数重排后的最小值 { int t; if(a<b){t=a;a=b;b=t;} if(b<c){t=b;b=c;c=t;} if(a<c){t=a;a=c;c=t;} return (c*100+b*10+a); }


寝室开空调了,庆祝一下

浙公网安备 33010602011771号