- 【問題描述】按程序功能要求編寫程序.
(1)從鍵盤輸入一個正整數(不多於5位),計算該正整數與789之和(記爲sum);
(2)將整數sum各個位拆分到數組a中;
(3)數組a從小到大排序;
(4)將排序後的數組a組成一個值爲最小的整數(記爲min);
(5)輸出min及其位數(兩數中間以空格分隔).
- 【樣例輸入】52387
- 【樣例輸出】13567 5
- 【樣例說明】52387+789=53176,重排後得到的最小數爲13567,其位數爲5位.
初步功能實現
#include <stdio.h>//頭文件
int main()
{
int n,m,p,index,temp,j,min=0,i=0,i_max=0;
int a[6];
scanf("%d",&n);
p=n+789;
while(p)//去各個位
{
a[i]=p%10;
p=p/10;
i++;
}
i_max = i;// i值的數據保存 後面要用到
printf("i_max = %d \n",i_max);//過程驗證
for(i=0;i<i_max;i++)//過程驗證
{
printf("%d ",a[i]);
}
printf("\n");//過程驗證
//從小到大排列
for(i=0;i<i_max-1;i++)
{
for(j=i+1;j<i_max;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
//組合數據
for(i=0;i<i_max;i++)
{
min=min*10+a[i];
}
//打印數據
printf("%d %d",min,i_max);
return 0;
}