排序问题,

xu_cq2004 2009-12-24 11:03:48
// rand.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "iostream"
#include "time.h"
#include<stdlib.h>
using namespace std;
class pac
{
public:
int lim;
pac(int a)
{
lim = a;
}
pac(){}
int obj1()
{
return 1+(int)(10*rand())/(RAND_MAX+1);

}//加入的值函数
int obj2()
{
int a = 34567;
return a;
}//固定值
int add()
{
return lim;
}//提供加入
int show()
{
return lim;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
pac load;
int a[10] = {0,1,2,3,4,5,6,7,8,9};
int tmp;
srand((int)time(0));
for(int i = 0;i<5;i++)
{
int xu = load.obj1();
if(xu<i)
tmp = a[xu];
a[xu] = a[i];
a[i] = tmp;
cout<<load.obj1();
}
cout<<endl;
cout<<load.obj2();
return 0;
}
大家帮忙看看在main函数里面为什么排序步成功?谢谢高手赐教
...全文
72 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xu_cq2004 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dskit 的回复:]
是个啥排序哦?
[/Quote]

对一个任意输出的数字排序呀,写的有点乱。。。
xu_cq2004 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hyai2008 的回复:]
这个写的!为什么库函数用的是双引号……不规范……
[/Quote]

谢谢。。。呵呵。
dskit 2009-12-24
  • 打赏
  • 举报
回复
是个啥排序哦?
xu_cq2004 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 freezezdj 的回复:]
引用 3 楼 xu_cq2004 的回复:
引用 1 楼 freezezdj 的回复:
for(int i = 0;i  <5;i++)
{
int xu = load.obj1();
if(xu  <i)
tmp = a[xu];
a[xu] = a[i];
a[i] = tmp;
cout  <  <load.obj1();
}
冒泡排序一般是双层循环。

我用过还是不行
例如:
我加入 for(int j = 0; j <10,j++)
{
  然后我把他们排序的i换成j还是不行,这是为什么 请赐教,谢谢!
}


单层的肯定是不行的。

建议楼主看看STL的sort()算法。
[/Quote]

qsort 太难了,看了有点头晕。哈哈、
xu_cq2004 2009-12-24
  • 打赏
  • 举报
回复
双引号比<>这个好用多了,你以后就知道了。呵呵。
冻结 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xu_cq2004 的回复:]
引用 1 楼 freezezdj 的回复:
for(int i = 0;i <5;i++)
{
int xu = load.obj1();
if(xu <i)
tmp = a[xu];
a[xu] = a[i];
a[i] = tmp;
cout < <load.obj1();
}
冒泡排序一般是双层循环。

我用过还是不行
例如:
我加入 for(int j = 0; j <10,j++)
{
  然后我把他们排序的i换成j还是不行,这是为什么 请赐教,谢谢!
}
[/Quote]

单层的肯定是不行的。

建议楼主看看STL的sort()算法。
mstlq 2009-12-24
  • 打赏
  • 举报
回复
不如楼主先说说,你认为主函数在哪里排序了?
hyai2008 2009-12-24
  • 打赏
  • 举报
回复
这个写的!为什么库函数用的是双引号……不规范……
xu_cq2004 2009-12-24
  • 打赏
  • 举报
回复
谢谢 1 2楼的 结贴了!~
xu_cq2004 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 freezezdj 的回复:]
for(int i = 0;i <5;i++)
{
int xu = load.obj1();
if(xu <i)
tmp = a[xu];
a[xu] = a[i];
a[i] = tmp;
cout < <load.obj1();
}
冒泡排序一般是双层循环。
[/Quote]
我用过还是不行
例如:
我加入 for(int j = 0; j<10,j++)
{
然后我把他们排序的i换成j还是不行,这是为什么 请赐教,谢谢!
}
冻结 2009-12-24
  • 打赏
  • 举报
回复

for(i=1;i<=9;i++)
{
for(j=1;j<=10-i;j++)
{
if(a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
}

冻结 2009-12-24
  • 打赏
  • 举报
回复
for(int i = 0;i <5;i++)
{
int xu = load.obj1();
if(xu <i)
tmp = a[xu];
a[xu] = a[i];
a[i] = tmp;
cout < <load.obj1();
}
冒泡排序一般是双层循环。

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧