c语言排序问题简单的选择排序

#include#define N 20void px(int a[],int n){ int i,j,t,min; for(i=0;ia[j]) { t=a[j]; a[j]=min; min=t; } } printf("%d\t",a[i]); }}int main(){ int a[N],n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",a[i]); px(a,n); for(i=0;i<n;i++) printf("%d\t",a[i]); return 0;} 这是c语言中的一个选择排序,用vc编译和链接都没错,执行的时候出错了,各位大神请指点一二。

 #include "stdafx.h"

#include<stdio.h>
#define N 20

void px(int a[],int n)
{
    int i,j,t,min;
    for(i=0;i<n;i++)
    {
        min=i;
        for(j=i+1;j<n;j++)
        {
            if(a[min]>a[j])
            {
                min=j;
            }
        }
                t=a[i];
                a[i]=a[min];
                a[min]=t;
        //printf("%d\t",a[i]);
    }
}

int main()
{
    int a[N],n,i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    px(a,n);
    for(i=0;i<n;i++)
        printf("%d\t",a[i]);
    return 0;
}

void px(int a[],int n)
{
int i,j,t,min;
for(i=0;i {
min=i;
for(j=i+1;j {
if(a[min]>a[j])
{
min=j;
}
}
t=a[i];
a[i]=a[min];
a[min]=t;
//printf("%d\t",a[i]);
}
}

int main()
{
int a[N],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
px(a,n);
for(i=0;i<n;i++)
printf("%d\t",a[i]);
return 0;
}

include "stdafx.h"

#include
#define N 20

void px(int a[],int n)
{
int i,j,t,min;
for(i=0;i {
min=i;
for(j=i+1;j {
if(a[min]>a[j])
{
min=j;
}
}
t=a[i];
a[i]=a[min];
a[min]=t;
//printf("%d\t",a[i]);
}
}

int main()
{
int a[N],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
px(a,n);
for(i=0;i<n;i++)
printf("%d\t",a[i]);
return 0;
}


#include<iostream>

#include<vector>//向量,用来做变长数组;

#include<algorithm>

using namespace std;

int main()

{
    int n;
    cin>>n;
    int temp;

     vector<int> a(0,0);

    for(int i=0;i<n;i++)
    {
        cin>>temp;
        a.push_back(temp);
    }

            for(int i=0;i<n-1;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(a[j]<a[i])
            {
                swap(a[i],a[j]);
            }
        }
    }

   for(int i=0;i<n;i++)

cout<<a[i]<<" ";

return 0;
}