注册 登录
编程论坛 C++教室

关于数组(急)~~~

zhangjun039009 发布于 2008-10-21 16:44, 730 次点击
我查书得知,数组不能没有大小,而参加我们学校的程序设计的时候,出的题目如下:
对整数数组进行排序,要求输入:数组元素个数,所有数组元素,每个元素都是整数,
例如:
输入:
10//数组元素个数
1 3 5 4 6 8 7 0 9 2//元素个数
要求输出:
0 1 2 3 4 5 6 7 8 9

我知道要用冒泡排序法来进行排序,但是不知道怎样把元素个数弄到定义数组的那里,意思就是,我的元素个数并不一定是10个
我只能写十个的排序
#include<iostream>
using namespace std;
int main()
{   
    int a[10];
for(int i=0;i<10;i++)
{
    cin>>a[i];
}
for( int j=0;j<9;j++)
{
    for(i=0;i<9;i++)
    
        if(a[i]>a[i+1])
    {
        int t;
        t=a[i];a[i]=a[i+1];a[i+1]=t;
    }
}
for(i=0;i<10;i++)
cout<<a[i]<<" ";
  
return 0;
}希望哪位大虾能够解答一下
8 回复
#2
zxwangyun2008-10-21 17:57
用vector数组实现吧,程序如下:
#include <iostream>
#include<vector>
using namespace std;
void main()
{
    int length;
    cout<<"输入数组个数:length=";
    cin>>length;
    vector<int>a(length);
    for(int j=0;j<length;j++)
        cin>>a[j];
    cout<<"\n排序前数组为:\n";
    for(j=0;j<length;j++)
        cout<<a[j]<<"\t";
    for(j=0;j<length-1;j++)
    {
        for(int i=0;i<length-1;i++)
            if(a[i]>a[i+1])
            {
                int t;
                t=a[i];a[i]=a[i+1];a[i+1]=t;
            }
    }
    cout<<"\n排序后数组为:\n";
    for(j=0;j<length;j++)
        cout<<a[j]<<"\t";    
}
#3
zhangjun0390092008-10-21 18:25
回复 2# zxwangyun 的帖子
多谢~
#4
zhangjun0390092008-10-21 18:32
回复 2# zxwangyun 的帖子
vector<int>a(length);
这一句话能够解释一下吗?
#5
zxwangyun2008-10-21 18:40
看看书吧,这样映象深刻点。
这里是创建一个容量为length的容器
#6
zhangjun0390092008-10-21 18:45
回复 5# zxwangyun 的帖子
好,谢谢你了~
#7
newyj2008-10-21 20:08
动态分配 也可以的
不过要记的 delete 啊
#8
zhangjun0390092008-10-22 13:55
回复 7# newyj 的帖子
是不是
定义:
new int a[length];
然后输入length,在程序的最后再delete?
#9
beyondlwm2008-10-22 15:08
最好学习一下STL
课本上的知识很多都过时了
搞开发没太多人用数组的。
1