| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1110 人关注过本帖
标题:[求助]一个不会做的题目
取消只看楼主 加入收藏
cpluslover
Rank: 1
等 级:新手上路
威 望:1
帖 子:91
专家分:0
注 册:2006-12-13
收藏
 问题点数:0 回复次数:6 
[求助]一个不会做的题目
现在有一个数组,里面存放的都是整数

现在对每个数的各个位数加起来的和从小到大排列
然后再把排列后的顺序按原数组值输出

比如a[]={46,22,15}
输出的是:22 15 46


我想了一个方法,但感觉效率不好,有没有更简洁的方法呢

大家一起讨论下吧
2007-04-17 12:23
cpluslover
Rank: 1
等 级:新手上路
威 望:1
帖 子:91
专家分:0
注 册:2006-12-13
收藏
得分:0 

可以定为 int

我的思路是又设了个a数组,把各位数的和放到这个新数组1中

然后对新数组1序放到另一个数年数组2中
对数组2各元素查找它在数组1中的位置i,然后打出来a[i]

就这样,三个数组太麻烦了
有没有简单点的呢


“运行正确”的程序不见得是高质量的程序
2007-04-17 13:03
cpluslover
Rank: 1
等 级:新手上路
威 望:1
帖 子:91
专家分:0
注 册:2006-12-13
收藏
得分:0 
你写一个出来看看,看跟我的方法一样不

“运行正确”的程序不见得是高质量的程序
2007-04-17 13:28
cpluslover
Rank: 1
等 级:新手上路
威 望:1
帖 子:91
专家分:0
注 册:2006-12-13
收藏
得分:0 

你自己设定就行了,

反正不overflow就行了

两位,一位,三位都可以呵呵


“运行正确”的程序不见得是高质量的程序
2007-04-17 13:45
cpluslover
Rank: 1
等 级:新手上路
威 望:1
帖 子:91
专家分:0
注 册:2006-12-13
收藏
得分:0 

#include<stdlib.h>
#include<iostream>
using namespace std;

int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}

int convert(int tem)
{
int sum=0;
while(tem)
{
sum=sum+tem%10;
tem=tem/10;

}
return sum;
}

int main()
{

int num[3]={ 193, 392, 24};
int b[3]={0};
int c[3]={0};
int i,j;

for(i=0;i<3;i++)
cout<<num[i]<<" ";
cout<<endl;

for(i=0;i<3;i++)
{
b[i]=convert(num[i]);
c[i]=convert(num[i]);
}


qsort(c,3,sizeof(c[0]),cmp);

for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(b[j]==c[i]) cout<<num[j]<<" ";
}


return 0;
}


“运行正确”的程序不见得是高质量的程序
2007-04-17 19:44
cpluslover
Rank: 1
等 级:新手上路
威 望:1
帖 子:91
专家分:0
注 册:2006-12-13
收藏
得分:0 

谢谢各位了,上面就是我写的那个笨重算法
呵呵

楼上的那个看不明白,不知道那个调用


楼上上的那个还挺简洁的,有一点不妥就是不支持多2位数的,我写那个太笨重了


“运行正确”的程序不见得是高质量的程序
2007-04-17 19:47
cpluslover
Rank: 1
等 级:新手上路
威 望:1
帖 子:91
专家分:0
注 册:2006-12-13
收藏
得分:0 
恩都不错,

奖励奖励

“运行正确”的程序不见得是高质量的程序
2007-04-17 20:00
快速回复:[求助]一个不会做的题目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016426 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved