| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1225 人关注过本帖
标题:数字排序
只看楼主 加入收藏
蔡君君
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-10-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
数字排序
题目是:对整数数组进行排序,比较是以一个整数的各位数字之和的大小为依据,从小到大依次排列。数组中元素为12 32 42 51  21 19 9。

#include <iostream.h>
void  qsort(int ia[],int m);
int main()
{int i;
int a[7]={12,32,42,51,21,19,9};
qsort(a,7);
for(i=0;i<7;i++)
  cout<<a[i]<<",";
cout<<endl;
}
void qsort(int ia[],int m)
{
int temp,j,i;
  for(i=0;i<m;i++)
    ia[i]=ia[i]%10+ia[i]/10;
  for(i=0;i<m;i++)
    for(j=i+1;j<m-i;j++)
      if(ia[i]>=ia[j])
        temp=ia[i];
        ia[i]=ia[j];
        ia[j]=temp;
}
为什么我编的这个程序运行的时候只能输出各位数字之和,而不能比较大小?
搜索更多相关主题的帖子: include 元素 
2016-10-31 12:23
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:8 
//你的ia数字元素都变了,肯定不会输出原来的数据,
//for(j=i+1;j<m-i;j++)这个排序你好像还不知道怎么写,看前面感觉你要用选择排序,但是判断条件像是冒泡排序
#include <iostream.h>
void  qsort(int ia[],int m);
int main()
{int i;
int a[7]={12,32,42,51,21,19,9};
qsort(a,7);
for(i=0;i<7;i++)
  cout<<a[i]<<",";
cout<<endl;
}
void qsort(int ia[],int m)
{
int temp,j,i;
int t[7];
  for(i=0;i<m;i++)
    t[i]=ia[i]%10+ia[i]/10;
  for(i=0;i<m;i++)
    for(j=i+1;j<m;j++)
        if(t[i]>=t[j]){
        temp=ia[i];
        ia[i]=ia[j];
        ia[j]=temp;
        temp = t[i];
        t[i]=t[j];
        t[j]=temp;
        }
}
2016-10-31 12:55
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:2 
还有些效率问题自己琢磨一下。。
2016-10-31 12:55
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
以下是引用word123在2016-10-31 12:55:12的发言:

//你的ia数字元素都变了,肯定不会输出原来的数据,
//for(j=i+1;j<m-i;j++)这个排序你好像还不知道怎么写,看前面感觉你要用选择排序,但是判断条件像是冒泡排序
#include <iostream.h>
void  qsort(int ia[],int m);
int main()
{int i;
int a[7]={12,32,42,51,21,19,9};
qsort(a,7);
for(i=0;i<7;i++)
  cout<<a<<",";
cout<<endl;
}
void qsort(int ia[],int m)
{
int temp,j,i;
int t[7];
  for(i=0;i<m;i++)
    t=ia%10+ia/10;
  for(i=0;i<m;i++)
    for(j=i+1;j<m;j++)
        if(t>=t[j]){
        temp=ia;
        ia=ia[j];
        ia[j]=temp;
        temp = t;
        t=t[j];
        t[j]=temp;
        }
}



不好意思,没能仔细理解楼主的意思,修改回复

[此贴子已经被作者于2016-10-31 13:17编辑过]


早知做人那么辛苦!  当初不应该下凡
2016-10-31 13:07
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:10 
#include <iostream>
using namespace std;
 void  qsort(int *ia,int m);
 int main()
 {int i;
 int a[7]={12,32,42,51,21,19,9};
 qsort(a,7);
 for(i = 0;i < 7 ; i++)
   cout<<a[i]<<",";
 cout<<endl;
 }
 void qsort(int *ia,int m)
 {
 
 int temp,j,i;
  for(i = 0; i < m; i ++){
     ia[i]=ia[i]%10 + ia[i]/10;}
  for(i = 0; i < m; i ++){
     for(j = i+1; j < m; j ++){   //j<m  for循环括号最好都打出来
       if(ia[i] >= ia[j]){
         temp=ia[i];
         ia[i]=ia[j];
         ia[j]=temp;
        }
    }
  }
}

早知做人那么辛苦!  当初不应该下凡
2016-10-31 13:09
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
回复 5楼 炎天
我以为是输出改变后的数字,5楼的回复不作数

[此贴子已经被作者于2016-10-31 13:18编辑过]


早知做人那么辛苦!  当初不应该下凡
2016-10-31 13:16
蔡君君
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-10-31
收藏
得分:0 
回复 6楼 炎天
谢谢!!
2016-10-31 14:10
蔡君君
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-10-31
收藏
得分:0 
回复 3楼 word123
谢谢!!
2016-10-31 14:16
快速回复:数字排序
数据加载中...
 
   



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

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