zoukankan      html  css  js  c++  java
  • C语言实验——各位数字之和排序

    C语言实验——各位数字之和排序

    题目描述

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

    输入

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

    输出

    输出每组排序的结果。

    示例输入

    2 1 2
    3 121 10 111
    0

    示例输出

    1 2
    10 111 121

    注意题目为各位数字之和,不注意是会吃大亏的。。。

    #include <stdio.h>
    
    void sort(int a[],int n);//冒泡排序
    int isum(int n);//各位之和
    
    int main()
    {
    
    	int n,i;
    	int a[100];
    	while(scanf("%d",&n), n)
    	{
    		for(i=0; i<n; i++)//输入数组
    			scanf("%d",&a[i]);
    		sort(a,n);//排序
    		for(i=0; i<n; i++)//输出
    		{
    			if(i != n-1)
    				printf("%d ",a[i]);
    			else
    				printf("%d\n",a[i]);
    		}
    
    	}
    
    	return 0;
    }
    
    
    void sort(int a[],int n)//冒泡排序
    {
    	int i,j;
    	int t;
    	for(i=n-1-1; i >=0; i--)
    	{
    		for(j=0; j<=i; j++)
    		{
    			if(isum(a[j]) > isum(a[j+1]))
    			{
    				t=a[j];
    				a[j]=a[j+1];
    				a[j+1]=t;
    			}
    		}
    	}
    }
    
    int isum(int n)//各位之和
    {
    	int s=0;
    	do
    	{
    		s += n % 10;
    		n /= 10;
    	}while(n);
    
    	return s;
    }


  • 相关阅读:
    Halcon 笔记3 形态学
    Halcon 笔记2 Blob分析
    Halcon 笔记1
    线程
    Fn+F1-F12,避免使用FN+
    改变与接受
    PictureBox使用异常
    (一)Knockout
    (二)HTML5
    (一)chrome扩展
  • 原文地址:https://www.cnblogs.com/tanhehe/p/2883533.html
Copyright © 2011-2022 走看看