1 回答

TA貢獻(xiàn)9條經(jīng)驗(yàn) 獲得超1個(gè)贊
#include <stdio.h>
int main(void)
{
??? int a=0;? //用于獲取輸入的數(shù)字
??? int b[4]={0};? //用于保存每個(gè)位
??? int c=0;? //用于排序時(shí)暫存
??? int max=0,min=0;? //保存最大最小值
???
??? printf("請(qǐng)輸入一個(gè)四位數(shù)字:");
??? 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("這個(gè)數(shù)字為:%d",a);
??? return 0;
}
這是我的看法,我沒有編譯,編譯器好像出了點(diǎn)小問題,你自己試試看,你說測(cè)試所有四位數(shù)字的話就加一個(gè)for循環(huán),挨個(gè)把值附給a應(yīng)該就可以吧
- 1 回答
- 0 關(guān)注
- 1837 瀏覽
添加回答
舉報(bào)