编一个函数sort,使10个整数按升序排列,在main函数中输入这10个数,并输出排好序的数,函数参数用指针实现

如题所述

第1个回答  2011-06-15
#include<stdio.h>
void sort(int *a,int n)
{
int i,j,temp;
for(j=0;j<n;j++)
for (i=0;i<n-j-1;i++)
if (a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
void main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
sort(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i] );
printf("\n");
}本回答被提问者采纳
第2个回答  2011-06-15
#include <stdio.h>

void sort(int* a, int n)
{
int t;
for (int i = 0; i < n; i++)
{
for (int j = i+1; j < n; j++)
{
if(*(a+i) > *(a+j))
{
t = *(a+i);
*(a+i) = *(a+j);
*(a+j) = t;
}
}
}
}

void output(int* a,int n)
{
for (int i = 0; i < n; i++)
{
printf("%d\t",*(a+i));
}
printf("\n");
}
int main()
{
int a[10] = {10,8,9,5,6,2,4,3,16,12};
sort(a,10);
output(a,10);
return 0;
}
第3个回答  2011-06-17
void sort(char array[3][4],int coun)
{
int i,j;
char news[12];
int bianliang = -1;
for (i=0; i<3; i++)
{
for (j=0; j<4; j++)
{
bianliang ++;
news[bianliang] = array[i][j];
}
}
for (i=0; i<coun-1; i++)
{
for (j=0; j<coun-1-i; j++)
{
if (news[j] >= news[j+1])
{
char temp;
temp = news[j];
news[j] = news[j+1];
news[j+1] = temp;
}
}
}
for (i=0; i<coun; i++)
{
cout<<news[i];
}
}
先在函数中把二维数组元素赋给一维数组,然后再比较
相似回答