C语言题目: 用冒泡法对任意输入的10个整数由小到大的顺序排序
#include<stdio.h>
voidmain()
{
charc;intx;inta[100];
inti=0,j,num,temp;
clrscr();
printf("pleasesomeintegers:\n");
scanf("%d",&x);
c=getchar();
while(c!='#')
{a[i]=x;
scanf("%d",&x);
c=getchar();
i++;
num=i-1;
}
if(num==0)
{
printf("\nYoushouldgiveatleasttwointegers!");
exit(0);
}
printf("Theintegersyouinput:\n");
for(i=0;i<=num;i++)
{printf("%-5d",a[i]);
if(i%5==4)printf("\n");}
printf("\nmaopaopaixu\n");
for(i=0;i<=num;i++)
for(j=0;j<=num-1;j++)
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
for(i=0;i<=num;i++)
{printf("%-5d",a[i]);
if(i%5==4)printf("\n");}
printf("\nxuanzepaixu\n");
for(i=0;i<=num;i++)
for(j=i+1;j<=num;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=0;i<=num;i++)
{printf("%-5d",a[i]);
if(i%5==4)printf("\n");}
getch();
}
扩展资料
用“起泡法”,对输入的10个字符由小到大排序。
#include<stdio.h>
#include<string.h>
intmain(void){
voidsort(chara[10]);//声明函数
chara[10];
inti;
printf("输入10个字符,中间不要有空格:\n");
for(i=0;i<10;i++){
scanf("%c",&a[i]);
}
sort(a);//调用函数
return0;
}
voidsort(chara[10]){
intj;//外循环,控制趟数
inti;//内循环,控制次数
chart;
for(j=0;j<9;j++){
for(i=0;i<9-j;i++){
if(a[i]>a[i+1]){
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0;i<10;i++){
printf("%c",a[i]);
}
}
C语言程序:
#include <stdio.h>
/* 冒泡排序,非递减有序 */
void sort(int arr[], int n)
{
int i, j;
int temp;
for(i=0; i<n-1; i++)
{
for(j=0; j<n-1-i; j++)
if(arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
void main()
{
int arr[10];
int i, n = 10;
printf("请输入10个整数:");
for(i=0; i<n; i++)
scanf("%d", &arr[i]);
sort(arr, n);
printf("排序后:\n");
for(i=0; i<n; i++)
printf("%d ", arr[i]);
printf("\n");
}
运行测试:
请输入10个整数:4 5 6 7 1 2 3 0 9 8
排序后:
0 1 2 3 4 5 6 7 8 9