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

作者&投稿:陀趴 (若有异议请与网页底部的电邮联系)

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

2、定义变量类型。

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

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

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

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

7、定义变量类型。

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

9、编译,执行即可。



#include<stdio.h>

voidmain()

{

charc;intx;inta[100];

inti=0,j,num,temp;

clrscr();

printf("pleasesomeintegers:
");

scanf("%d",&x);

c=getchar();

while(c!='#')

{a[i]=x;

scanf("%d",&x);

c=getchar();

i++;

num=i-1;

}

if(num==0)

{

printf("
Youshouldgiveatleasttwointegers!");

exit(0);

}

printf("Theintegersyouinput:
");

for(i=0;i<=num;i++)

{printf("%-5d",a[i]);

if(i%5==4)printf("
");}

printf("
maopaopaixu
");

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("
");}

printf("
xuanzepaixu
");

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("
");}

getch();

}

扩展资料

用“起泡法”,对输入的10个字符由小到大排序。

#include<stdio.h>

#include<string.h>

intmain(void){

voidsort(chara[10]);//声明函数

chara[10];

inti;

printf("输入10个字符,中间不要有空格:
");

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("排序后:
");
for(i=0; i<n; i++)
printf("%d ", arr[i]);
printf("
");
}


运行测试:

请输入10个整数:4 5 6 7 1 2 3 0 9 8
排序后:
0 1 2 3 4 5 6 7 8 9


C语言 输入4个整数,要求按由小到大的顺序输出~

if是可以没有else的,这样的情况下如果if的条件符合,则执行if语句,否则不执行,直接到下一个if。也就是说,如果a不大于b,也就是a小于b,那么就像刚刚说的,不执行这个if就是了,计算机会往下阅读程序,也就是去判断下一个if,记住一句话“if条件不符合就不执行”。else只是相当于if不符合的话其他情况下执行什么,如果没有else,那就表示,if不符合,程序保持不动。
这个程序给你举个实例讲解也许你就明白了
假设输入为1,3,4,2
1不大于3,第一个if不执行,目前顺序为1,3,4,2
1不大于4,第二个if不执行,目前顺序为1,3,4,2
1不大于2,第三个if不执行,目前顺序为1,3,4,2
3不大于4,第四个if不执行,目前顺序为1,3,4,2
3大于2,第五个if执行,实现交换,目前顺序为1,2,4,3
4大于3,第六个if执行,实现交换,最后顺序为1,2,3,4

其实你仔细想想,如果第一个if执行,实现交换,那么第二个if中的a已经是交换过后的那个较小的数。第三个同理。也就是说,前3个if执行完以后确保了第1个数是4个数字中最小的,第四第五确保第二个数在剩下的3个数中是最小的(也就是4个数字中第二小的),第6个if确保第三个数小于第四个数。这样子就实现了整个结构的排序。希望能帮到你。

代码如下(对10个整数进行升序排序):
#include<stdio.h>
int main()
{
int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};
//排序
for(i=1;i<10;i++)//外循环控制排序趟数,n个数排n-1趟
{
for(j=0;j<10-1;j++)//内循环每趟比较的次数,第j趟比较n-i次
{
if(a[j]>a[j+1])//相邻元素比较,逆序则交换
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序后的结果是:
");
for(i=0;i<10;i++)
{
printf("%d",a<i>);
}
printf("
");
return 0;
}
冒泡法:
算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。

扩展资料:include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏
你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。