如何解决下面这C语言题?

来源:百度知道 编辑:UC知道 时间:2024/05/02 07:20:24
将下面的程序改为:输入5个浮点数,按由大到小顺序输出。
#include <stdio.h>
void main()
{
void swap(int*p1,int*p2);
int n1,n2,n3;
int*p1,*p2,*p3;
printf("input three integer n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2) swap(p1,p2);
if(n1>n3) swap(p1,p3);
if(n2>n3) swap(p2,p3);
printf("now,the order is:%d,%d,%d",n1,n2,n3);
}
void swap(int*p1,int*p2)
{
int p;
p=*p1;
*p1=*p2;
*p2=p;
}

冒泡排序只是用在教学中
真正软件开发中很少使用它

#include <stdio.h>
#define MAX_ARRAY_SIZE 5
void main()
{
void swap(float *p1, float *p2);

int index = 0, ii, jj;
float array[5];

printf("input %d integer:", MAX_ARRAY_SIZE);
while (index < MAX_ARRAY_SIZE) {
scanf("%g,",&array[index++]);
}

for (ii = 0; ii < MAX_ARRAY_SIZE; ++ii) {
for (jj = ii + 1; jj < MAX_ARRAY_SIZE; ++jj) {
if (array[ii] < array[jj]) {
swap(&array[ii], &array[jj]);
}
}
}

index = 0;
printf("now,the order is: %g", array[index++]);
while (index++ < MAX_ARRAY_SIZE) {
printf(",%g", array[index]);
}
}

void swap(float *p1,float *p2)
{
float p;
p=*p1;
*p1=*p2;
*p2=p;
}

改好,请验收:
#include <stdio.h>
void main()
{
void swap(float *p