问题描述
- C填空题:键盘上输入10个整数,程序按降序完成从大到小排序
-
#include
void sort(int *p,int *q)
{
int *max,*s;
if(p>q)return;
max=p;
__ for(s=p+1;s<=q;s++)__
if()max=s;
swap();
sort((),q);
}
void swap(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
void main()
{int i,array[10]; for(i=0;i<10;i++) scanf("%d",()); sort((),array+9); for(i=0;i<10;i++) printf("%d",*(array+i));
}
解决方案
#include<stdio.h>
void sort(int *p,int *q)
{
int *max,*s;
if(p>q)return;
max=p;
//找寻p,q之间的最大值
for(s=p+1;s<=q;s++)
if(*s > *max)max=s;
//将array[p]和之后的最大值交换
swap(p,max);
//排序array[p+1...q]
sort(p+1,q);
}
void swap(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
void main()
{
int i,array[10];
//赋值
for(i=0;i<10;i++)
scanf("%d",&array[i]);
//对array数组排序
sort(array,array+9);
for(i=0;i<10;i++)
printf("%d",*(array+i));
}
解决方案二:
if(s > *max)max=s;
swap(&s, max);
sort(s,q);
scanf("%d",&array[i]);
sort(array,array+9);
时间: 2024-11-05 12:33:58