1 回答
TA贡献9条经验 获得超1个赞
#include <stdio.h>
int main(void)
{
int a=0; //用于获取输入的数字
int b[4]={0}; //用于保存每个位
int c=0; //用于排序时暂存
int max=0,min=0; //保存最大最小值
printf("请输入一个四位数字:");
scanf("%d",&a);
if(a>=1000&&a<=9999) //判断输入的值是否过大或过小
{
while(a>=10)
{
b[0]=a/1000;
b[1]=(a%1000)/100;
b[2]=(a%100)/10;
b[3]=a%10;
for (int i=0;i<3;i++) //由小到大排序
{
for (int j=i+1;j<4;j++)
{
if (b[i]>b[j])
{
c=b[i];
b[i]=b[j];
b[j]=c;
}
}
}
min=b[0]*1000+b[1]*100+b[2]*10+b[3];
max=b[3]*1000+b[2]*100+b[1]*10+b[0];
a=max-min; //差值保存到a中便于while检查
}
}
printf("这个数字为:%d",a);
return 0;
}
这是我的看法,我没有编译,编译器好像出了点小问题,你自己试试看,你说测试所有四位数字的话就加一个for循环,挨个把值附给a应该就可以吧
- 1 回答
- 0 关注
- 1793 浏览
添加回答
举报