1. 从键盘输入10个整数,采用冒泡排序法从大到小排序并输出。

如题所述

#include<stdio.h>
#include<malloc.h>
void print(int *a,int n);
void paixu(int *a,int n);
void main()
{
int a[10];
int i;
printf("请输入10个整数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
paixu(a,i);//排序
print(a,i);//输出
}
int swap(int *a,int *b)//交换
{
int t;
t=*a;
*a=*b;
*b=t;
}
//冒泡排序,从大到小
void paixu(int *a,int n)
{
int i,j=0,k;
printf("==========从大到小排序后=========\n");
for(i=0;i<n-1;i++)
{
for(j=1;j<n-i;j++)
if(a[j-1]<a[j])
swap(&a[j],&a[j-1]);
}
}
void print(int *a,int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",*(a+i));
printf("\n");
}
//程序在VC++6.0里编译运行通过,不懂的可追问哦。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-06
(int i = 0; i < newarr.Length; i++)//冒泡排序 { for (int j = i + 1; j < newarr.Length; j++) { if (newarr[i] < newarr[j],IVVhnY
第2个回答  2012-05-07
main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
for(j=0;j<=9;j++)
{ for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;}
}
for(i=1;i<11;i++)
printf("%5d,",a[i] );
printf("\n");
}