用c语言编写一个程序,从键盘输入5个整数,并将这5个数存入一个长度为5的一维数组中

用c语言编写一个程序,1:从键盘输入5个整数,并将这5个数存入一个长度为5的一维数组中
2:编写一个功能函数,将这个数组中的元素,以从小到大的顺序进行排序(使用选择排序法),要求以数组名作为函数的形参,并且排序功能通过指针来完成

#include<stdio.h>
int main()
{
int i, b[5],j;
printf("输入5个数:");
for (i = 0; i < 5; i++)
scanf("%d",&b[i]);
printf("5个数是:");
for (i = 0; i < 5; i++)
printf("%5d",b[i]);
}这是第一个题
#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;
}
}
}
}
int main()
{
int i, b[5];
printf("输入5个数:");
for (i = 0; i < 5; i++)
scanf("%d", &b[i]);
sort(b,5);
printf("5个数排序后是:");
for (i = 0; i < 5; i++)
printf("%5d", b[i]);
}
这是第二题
记得采纳哦!
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-02
以测试,没问题,望采纳!

#include<stdio.h>
void sort(int* a,int n)//=======================选择排序
{
for(int i=0;i<n;i++)
{
int im = i;
int min = a[im];
for(int j=i+1;j<n;j++)
{ if(a[j]<a[im])
{
im=j;
min =a[im];
}
}
int temp=a[im];//=========交换
a[im]=a[i];
a[i]=temp;
}
}

void print(int *a,int n)
{
for(int i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}
int main()
{
const int N=5;
int a[N];
printf("请输入5个数:");
for(int i=0;i<N;i++)
scanf("%d",&a[i]);
print(a,N);
sort(a,N);
print(a,N);
return 0;
}
相似回答