c语言编程题 利用指针编写函数用选择法对整数数组排序(降序)。 求大神帮忙啊!!!谢谢

2024-11-30 05:39:00
推荐回答(2个)
回答1:

#include

void Sort(int *a,int n) {
int *p,*q,*v,t;
for(p = a;p < a + n - 1;++p) {
v = p;
for(q = p + 1; q < a + n; ++q)
if(*v > *q) v = q;
if(*p != *v) {
t = *p;
*p = *v;
*v = t;
}
}

}

void Show(int *a,int n) {
int i;
for(i = 0; i < n; ++i)
printf("%d ",*(a + i));
printf("\n");
}

int main() {
int a[] = {23,12,54,89,66,59,57,48,91,20,31};
int n = sizeof(a)/sizeof(a[0]);
printf("排序前:\n");
Show(a,n);
printf("排序后:\n");
Sort(a,n);
Show(a,n);
return 0;
}

回答2:

#include
using namespace std;
int sort(int *a, int num)
{
int temp;
for(int i = 0; i < (num-1); i++)
{
if(a[i]>a[i+1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
return 0;
}
int main()
{
int num;
printf("请输入数组中整数个数:\n");
scanf("%d",&num);
int a[num];
sort(a,num);
return 0;

}