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 關注
- 1838 瀏覽
添加回答
舉報