C++对n个数从小到大排序

#include "iostream"
using namespace std;
pai()
{int i,j,k,n,z,a[100];
for(i=0;i<n;i++)
{for(j=0;j<n-i;j++)
if(a[i]>a[i+1])
{
k=a[i];
a[i]=a[i+1];
a[i+1]=k;// 交换值
}
}

}

int main()
{int i,j,k,n,a[100];
cin >>n;//输入要输入数的个数
for(i=0;i<n;i++)
cin >>a[i];//输入n个数
pai(); //调用函数
for(i=0;i<n;i++)
cout <<a[i]<<",";//输出数子
return 0;
}
#include "iostream"
using namespace std;
pai(int a[],int n) //参数传递
{int i,j,k;
for(i=0;i<n-1;i++)
{for(j=i;j<n;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;// 交换值
}
}
}
pai(float a[],int n) //参数传递
{int i,j,k;
for(i=0;i<n-1;i++)
{for(j=i;j<n;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;// 交换值
}
}
}
pai(double a[],int n) //参数传递
{int i,j,k;
for(i=0;i<n-1;i++)
{for(j=i;j<n;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;// 交换值
}
}
}
int main()
{int i,j,n;
int a[100];
cin >>n;
for (i=0;i<n;i++)
cin >>a[i];
pai(a,n);
for(i=0;i<n;i++)
cout <<a[i]<<",";//输出数子
int i,j,n;
float a[100];
cin >>n;
for (i=0;i<n;i++)
cin >>a[i];
pai(a,n);
for(i=0;i<n;i++)
cout <<a[i]<<",";//输出数子
int i,j,n;
double a[100];
cin >>n;
for (i=0;i<n;i++)
cin >>a[i];
pai(a,n);
for(i=0;i<n;i++)
cout <<a[i]<<",";//输出数子
return 0;
}
帮我看以下那里有问题

#include <iostream>
using namespace std;

// å‡åºæ•°ç»„src
void sort(int *src, int len)
{
    int tem;
    for (int i = 0; i < len; i++)
    {
        for (int j = 0; j < len - i - 1; j++)
            if (src[j] > src[j+1])
            {
                tem = src[j];
                src[j] = src[j+1];
                src[j+1] = tem;
            }
    }
}

int main()
{
    int *num, n = 0;
    cout << "intput n: " << endl;
    cin >> n;
    if (n <= 0)
    {
        cout << "intput err!" << endl;
        return -1;
    }
    num = new int[n]; // ç”³è¯·å­˜å‚¨ç©ºé—´

    cout << "intput n num: " << endl;
    for (int i = 0; i < n; i++)
        cin >> num[i];
    sort(num, n); // æŽ’序

    cout << "sort num result: ";
    for (int i = 0; i < n; i++) // æ‰“印数组
        cout << num[i] << ' ';
    cout << endl;
    delete [] num; // é‡Šæ”¾å†…å­˜
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-04
应为你原来根本就没有把输入的数组传递给
调用函数,难为无米之炊啊~!
还有你原来的排序函数里也有逻辑错误
好好看看书,
下面是改好的程序。

#include "iostream"
using namespace std;
pai(int a[],int n) //参数传递
{int i,j,k;
for(i=0;i<n-1;i++)
{for(j=i;j<n;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;// 交换值
}
}

}

int main()
{int i,j,n,a[100];
cin >>n;//输入要输入数的个数
for(i=0;i<n;i++)
cin >>a[i];//输入n个数
pai(a,n); //调用函数
for(i=0;i<n;i++)
cout <<a[i]<<",";//输出数子
return 0;
}

****************************************************
第一次补充回答:
以下是修改通过代码和修改处原错误注释:

#include "iostream"
using namespace std;
void pai(int a[],int n) //没有返回值的函数要定义为void,下同
{int i,j,k;
for(i=0;i<n-1;i++)
{for(j=i;j<n;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;// 交换值
}
}
}
void pai(float a[],int n) //参数传递
{int i,j;
float k; //临时交换盒子类型要相符,下同
for(i=0;i<n-1;i++)
{for(j=i;j<n;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;// 交换值
}
}
}
void pai(double a[],int n) //参数传递
{int i,j;
double k;
for(i=0;i<n-1;i++)
{for(j=i;j<n;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;// 交换值
}
}
}
int main()
{
int i,j,n; //在这个主函数体里这个第一只要一次就好了。下面这样的定义都是重复的,全部删去
int a[100];
cin >>n;
for (i=0;i<n;i++)
cin >>a[i];
pai(a,n);
for(i=0;i<n;i++)
cout <<a[i]<<",";//输出数子

float b[100];
cin >>n;
for (i=0;i<n;i++)
cin >>b[i];
pai(b,n);
for(i=0;i<n;i++)
cout <<b[i]<<",";//输出数子

double c[100];
cin >>n;
for (i=0;i<n;i++)
cin >>c[i];
pai(c,n);
for(i=0;i<n;i++)
cout <<c[i]<<",";//输出数子
return 0;
}
***************************************************************
若还有不清楚的请补充提问,明白请记得处理问题
***************************************************************本回答被提问者采纳
第2个回答  2019-07-02

#include <iostream>
using namespace std;
// 升序数组src
void sort(int *src, int len)
{
    int tem;
    for (int i = 0; i < len; i++)
    {
        for (int j = 0; j < len - i - 1; j++)
            if (src[j] > src[j+1])
            {
                tem = src[j];
                src[j] = src[j+1];
                src[j+1] = tem;
            }
    }
}
int main()
{
    int *num, n = 0;
    cout << "intput n: " << endl;
    cin >> n;
    if (n <= 0)
    {
        cout << "intput err!" << endl;
        return -1;
    }
    num = new int[n]; // 申请存储空间
    cout << "intput n num: " << endl;
    for (int i = 0; i < n; i++)
        cin >> num[i];
    sort(num, n); // 排序
    cout << "sort num result: ";
    for (int i = 0; i < n; i++) // 打印数组
        cout << num[i] << ' ';
    cout << endl;
    delete [] num; // 释放内存
    return 0;
}

第3个回答  2018-05-20
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n-1];
    for(int i=0;i<n;i++) cin>>a[i];
    sort(a,a+n);
    for(int i=0;i<n;i++) cout<<a[i]<<" ";
    cout<<endl;
}

第4个回答  2007-11-12
什么问题呀?
相似回答