C++编程问题,VC2008 版本 关于数组排序的问题!!!!

从键盘读入若干整数,将它们按由低到高排序输出。
[测试数据]:
程序先输出: 请输入数组长度: 用户输入: 5
程序再输出: 请输入5个整数:
用户输入: 300 700 600 450 500
程序输出: 300 450 500 600 700
[实现要求]:
a.用一个数组存放各个整数;
b.在主函数main()中实现数据的输入和输出操作,并实现对数组元素的排序操作。
麻烦写详细点 我是C++新手 那些代码都还不会用啊!急切求助!!!!!

#include <iostream>
using namespace std;

void main()
{
cout << "请输入数组长度:" << endl;
int lenth = 0;
cin >> lenth;
int *ray = new int[lenth];
cout << "请输入" << lenth << "个整数" << endl;
for (int i = 0; i < lenth; ++i)
cin >> ray[i];

int t;
for (int i = 0; i < lenth-1; ++i)
{
for (int j = i+1; j < lenth; ++j)
{
if (ray[i] > ray[j])
{
t = ray[i];
ray[i] = ray[j];
ray[j] = t;
}
}
}
cout << "按由低到高排列以后:" << endl;
for (int i = 0; i < lenth; ++i)
cout << ray[i] << " ";
cout << endl;
}

注意:这句话int *ray = new int[lenth];在这里我用的指针new空间,相当于是动态分配的数组,这样有个好处是可以根据用户输入的数组长度来分配数组的大小,如果直接用事先准备好的数组,你必须确保你的数组足够大,如果你定义了一个100长度的,用户可能输入的是200个数,那程序就出问题了。不过如果非要按照你的要求来做的话,你可以把int *ray = new int[lenth];这句改成int ray[100];或者更大的数组,前提是用户不会输入超过这个数组长度的数目
温馨提示:内容为网友见解,仅供参考
无其他回答

高分求助一个C++问题(急!!!)
1、vector是模板类,必须指定类型才能用,比如vector<long> 2、array是保留字,不能用作变量名,至少在vc2008下是这样的,所以我改成了my_array 3、vector::size_type,同1问题,也得给出类型vector<long>::size_type 4、 for(vector::size_type i=array.size();i>=0;--i)这句判断是有问...

C++编程:按照二维数组的第一行从大到小排序,每列相应各行跟着第一行移 ...
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.#include <iostream>using namespace std;int main(void){ double a[4][3]={{3,1,5},{0.3,0.5,0.1},{1,0,2},{0,1,1}},tmp; int i,j,k,l; for(i=0;i<3;i++){ for(k=i,j=k+1;j<3;j++) if(a...

C++编程问题,VC2008版本的,关于计算并输出每个同学的平均分的问题,最好...
vc6编译运行通过了,你vs2008的话调试一下,应该没问题的,万一有问题叫我 include<iostream> using namespace std;void main(){ float student[4][4];for(int i=0;i<4;i++){ cout<<"输入第"<<i+1<<"个学生的3个成绩:";cin>>student[i][0]>>student[i][1]>>student[i][2];s...

现在编程一般用什么版本的c++?(VC++2008好吗?)
非常不建议你使用VC++2008,因为越新的VC版本越会有一些新的组件,其中甚至有Vista专有的组件,这会大大降低你编译的程序的兼容性,对于一般的程序,VC6.0完全足够,VC6.0也是一个轻量级的开发系统,安装程序只有100多M。为了支持一些较先进的组件,推荐 Visual Studio 2003 .NET ,其中包含VC++,...

C++编程问题,勾股定理,高手进!
vc2008测试通过。这种东西只能一个一个的来试。满足条件就算一个。要考虑三角形成立条件。考虑到三个数不会有两个相同,(否则第三个就不会是整数了)我们可以少算几个。考虑到大量的乘法运算,我们尽量合并。然后如果a^2+b^2<c^2则c之后的数肯定不满足是另外两个的平方和。于是有下面的程序。in...

Visual C++ 2008与Visual C++ 2005有什么不同?
1、VC2008FP1,Sp1都引入了C++ Tr1的新特性,比如正则表达式、元胞数组、array封装、大量随机分布函数...http:\/\/growupsoft.blog.163.com\/blog\/static\/960729200903104720643\/ http:\/\/msdn.microsoft.com\/en-us\/library\/bb982198.aspx 2、VC2008 Fp1,sp1通过收买BGC大幅度提高了MFC库的视觉特效,可以...

c++初始化数组的问题?
大部分支持C99的编译器都支持这个特性(VC2005之后,GCC3.2之后),这个和new出来的数组还是本质上不一样的,这个其实是程序在运行期间在进程栈区生成定长数组,所以也不需要你手动释放,但这种做法对一些高级的调试方法可能有一定的影响 所以不建议新手这么使用,除非你的程序明确需要这个数组要存储在栈区...

C++ 四位数排序问题
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.include <iostream> include "time.h"include "stdlib.h"using namespace std;void ReadDat(int *p,int n=200){ for(int i=0;i<n;*(p+i++)=rand()%9000+1000);\/\/for(int i=0;i<n;cin >> *(p+i++));\/\/手工输入用这一行,把...

VC++MFC编程出错:关于CArray数组
="; 里层CArray类没有"="这个重载函数,所以你不能用"="赋值;例如:CArray <CString,CString&> a, b; a = b; 这是不对的.给你两种思路:1.重载CArray 里的"="函数.2.要不你改下 CArray <stepnc,stepnc&> nc;试试用指针代替:CArray <stepnc*,stepnc*> nc;

visual studio 2008中写的c++文件可以在visual c++ 6.0中正常编译运行...
由于VC 6发布比较早,对某些关键字并不支持,比如用于模板分离的关键字。VC 2008对标准C++的支持要优于VC 6。如果你只是学习C++,估计写的程序能运行于各个版本的C++编译器;但如果你写的是MFC程序,恐怕会有些小问题。VC 6和VC 2008,据说其MFC类库还是有比较大的差别的。另外,VISTA上可以安装VC...

相似回答
大家正在搜