C语言实验——各位数字之和排序
2014-01-21 09:00
344 查看
题目描述
给定n个正整数,根据各位数字之和从小到大进行排序。输入
输入数据有多组,每组数据占一行,每行的第一个数正整数n,表示整数个数,后面接n个正整数。当n为0时,不作任何处理,输入结束。输出
输出每组排序的结果。示例输入
2 1 2 3 121 10 111 0
示例输出
1 2 10 111 121
代码如下:
#include<cstdio>#define N 99999
int main()
{int i,j,n,q
,p
,tam,temp,first;
while(scanf("%d",&n)!=EOF&&n!=0)
{first=1;
for(i=0;i<n;i++)
{scanf("%d",&q[i]);}
for(i=0;i<n;i++)
{
tam=q[i];
temp=0;
while (tam)
{ temp+=tam%10;
tam=tam/10;
}
p[i]=temp;
}
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(p[j]>p[j+1])
{temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
tam=q[j];
q[j]=q[j+1];
q[j+1]=tam;
}
for(i=0;i<n;i++)
{
if(first) first=0;
else printf(" ");
printf("%d",q[i]);
}printf("\n");
}
return 0;
}
这是昨天在山东理工OJ上做的题,题目很简单。
相关文章推荐
- sdut.acm 1188C语言实验——各位数字之和排序
- [1188]C语言实验——各位数字之和排序 sdutOJ
- [1188]C语言实验——各位数字之和排序 sdutOJ
- 1188-C语言实验-各位数字之和排序
- 理工大学ACM平台题关于C语言1188 C语言实验——各位数字之和排序
- 1188C语言实验——各位数字之和排序
- C语言实验——各位数字之和排序
- SDUT-1188 C语言实验——各位数字之和排序
- 2009: C语言实验——各位数字之和排序
- C语言实验——各位数字之和排序
- C语言实验——各位数字之和排序 (sdut oj)
- C语言实验——各位数字之和排序
- C语言实验——各位数字之和排序
- C语言实验——各位数字之和排序
- C语言实验——各位数字之和排序
- 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、87
- C语言实验——打印数字图形
- C#--第2周实验--任务10--编写一个控制台应用--输入一个整数,将其各位数字颠倒顺序后输出
- C语言实验——打印数字图形 (sdut oj)
- 第四次实验 编写函数computNum( int num),它的功能是计算任意输入的一个正整数的各位数字之和,结果由函数返回