C语言题目: 用冒泡法对任意输入的10个整数由小到大的顺序排序

如题所述

1、新建一个工程和.c文件。

2、定义变量类型。

3、用一个for语句遍历整个数组。

4、引入一个子函数,该子函数的作用是调整数组元素的顺序,使之由小到大排列。

5、最后通过for函数一次输出调整后的数组元素。

6、介绍一下子函数的实现语句,首先定义子函数。

7、定义变量类型。

8、该子函数实现顺序的调整。

9、编译,执行即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-13

#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]);

}

}

本回答被网友采纳
第2个回答  2017-07-02

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

本回答被提问者和网友采纳