zoukankan      html  css  js  c++  java
  • AC日记

    Problem Description

    给定n个正整数,根据各位数字之和从小到大进行排序。

    Input

    输入数据有多组,每组数据占一行,每行的第一个数正整数n,表示整数个数,后面接n个正整数。当n为0时,不作任何处理,输入结束。n<=10

    Output

    输出每组排序的结果。

    Example Input

    2 1 2
    3 121 10 111
    0

    Example Output

    1 2
    10 111 121

    Hint

    #include <stdio.h>
    #include <stdlib.h>
    int f(int n)//写一个计算各位数字之和的数。
    {
        int sum=0;
        while(n!=0)
        {
            sum+=n%10;
            n=n/10;
        }
        return sum;
    }
    int main()
    {
        int n;
        int *num, i, j, temp;
        while(scanf("%d", &n)!=EOF)
        {
            if(n==0)
            return 0;
            num=malloc(sizeof(int)*n);
            for(i=0; i<n; i++)
            scanf("%d", &num[i]);
    
            for(i=1; i<n; i++)
            for(j=0; j<n-i; j++)
            {
                if(f(num[j])>f(num[j+1]))
                {
                    temp=num[j+1];
                    num[j+1]=num[j];
                    num[j]=temp;
                }
            }
    
            for(i=0; i<n; i++)
            {
                if(i==0)
                printf("%d", num[i]);
                else
                printf(" %d", num[i]);
            }
                printf("
    ");
        }
    }
    

      

    作者:7oDo

    仅供参考,请勿抄袭。

    Hang Hang Hang !!!

  • 相关阅读:
    Java序列化与反序列化
    Java中的反射机制
    Java中读文件操作
    Java中写文件操作
    判断单链表是否有环
    Java继承与组合
    Java类初始化
    堆排序
    希尔排序
    插入排序
  • 原文地址:https://www.cnblogs.com/Jie-Fei/p/8297540.html
Copyright © 2011-2022 走看看