| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3470 人关注过本帖
标题:请问各位高手这个简单程序为何无法正常工作
只看楼主 加入收藏
荀减一
Rank: 1
等 级:新手上路
帖 子:19
专家分:2
注 册:2016-2-27
结帖率:75%
收藏
已结贴  问题点数:15 回复次数:2 
请问各位高手这个简单程序为何无法正常工作
目的是输出排序后的数
程序代码:
#include<iostream>
#include<string>
using namespace std;

void swap(int &a, int &b)
{
    int temp;
    temp = a;
    a = b;
    b = temp;
}

int SelectMinKey(int a[], int n, int i)
{
    int k = i;
    for (int j = i + 1; j< n; ++j) {
        if (a[k] > a[j]) k = j;
    }
    return k;
}

void selectSort(int a[], int n){
    int key;
    for (int i = 0; i< n; ++i)
    {
        key = SelectMinKey(a, n, i);           //选择最小的元素  
        if (key != i)
            swap(a[i], a[key]);           //最小元素与第i位置元素互换 
    }
}

void main()
{
    int n, arr[1];
    int *p=arr;
    cout << "Please input array number: " << endl;
    cin >> n;
    p = new int(n - 1);
    cout << "Please input all the integer: " << endl;
    for (int i = 0; i < n; i++)
        cin >> arr[i];

    selectSort(arr, n);
    for (int i = 0; i < n; i++)
        cout << arr[i];
    system("pause");
}
2016-05-10 15:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:15 
鬼知道“无法正常工作”是个什么意思?
如果编译失败,贴出编译器给出的错误信息
如果运行结果不符合自己的预期,贴出你的输入数据期待的输出数据,以及 实际的输出数据

只能瞎猜猜,我猜你的main函数其实想要的是这样:
int main( void )
{
    cout << "Please input array number: ";
    size_t n;
    cin >> n;

    cout << "Please input all the integer: ";
    int* p = new int[n];
    for( size_t i=0; i!=n; ++i )
        cin >> p[i];

    SelectSort( p, n );

    for( size_t i=0; i!=n; ++i )
        cout << ' ' << p[i];

    return 0;
}
2016-05-11 09:05
荀减一
Rank: 1
等 级:新手上路
帖 子:19
专家分:2
注 册:2016-2-27
收藏
得分:0 
回复 2楼 rjsp
版主大大猜的真准,请问是我new函数的不正确使用而导致的无法输出排序吗?
2016-05-11 12:10
快速回复:请问各位高手这个简单程序为何无法正常工作
数据加载中...
 
   



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

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