從鍵盤輸入一個正整數(不多於5位),計算該正整數與789之和(記爲sum)

  • 【問題描述】按程序功能要求編寫程序.

(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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章