c语言编程:对10个数冒泡排序(升序)。
#include
void main()
{
int i,j;
float a[10],t;
printf("请输入十个数字");
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
}
for(j=0;j<10;j++)
{
for(i=0;i<10-1;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("%f",a[i]);
printf(" ");
}
}====
代码如下(对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的内容。
#include <stdio.h>
int main(){
int number[10] = {95, 45, 15, 78, 84, 51, 24, 12,34,23};
for (int j = 0; j < 9; j++)
for (int i = 0; i < 9 - j; i++) {
if(a[i] > a[i + 1]) {
int temp = a[i];a[i] = a[i + 1];
a[i + 1] = temp; }
}
for (int i = 0; i < 10; i++) {
printf(“%d”,a[i]); }
}
扩展资料:
常见排序算法
快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。
插入排序
已知一组升序排列数据a[1]、a[2]、……a[n],一组无序数据b[1]、b[2]、……b[m],需将二者合并成一个升序数列。
首先比较b[1]与a[1]的值,若b[1]大于a[1],则跳过,比较b[1]与a[2]的值,若b[1]仍然大于a[2],则继续跳过,直到b[1]小于a数组中某一数据a[x],则将a[x]~a[n]分别向后移动一位,将b[1]插入到原来a[x]的位置这就完成了b[1]的插入。
b[2]~b[m]用相同方法插入。
快速排序
快速排序是大家已知的常用排序算法中最快的排序方法。已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先任取数据a[x]作为基准。
比较a[x]与其它数据并排序,使a[x]排在数据的第k位,并且使a[1]~a[k-1]中的每一个数据<a[x],a[k+1]~a[n]中的每一个数据>a[x],然后采用分治的策略分别对a[1]~a[k-1]和a[k+1]~a[n]两组数据进行快速排序。
希尔排序
已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。
首先取一增量d(d<n),将a[1]、a[1+d]、a[1+2d]……列为第一组,a[2]、a[2+d]、a[2+2d]……列为第二组……,a[d]、a[2d]、a[3d]……列为最后一组以次类推,在各组内用插入排序,然后取d'<d,重复上述操作,直到d=1。
参考资料:排序-百度百科
代码示例如下,以数组a为例:
#include <stdio.h>
#define SIZE 10
int main()
{
int a[SIZE]={12 ,43,9,13,67,98,101,89,3,35};
int i,j,t;
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
拓展资料
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
冒泡排序流程:它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
参考代码:
#include<stdio.h>
int main()
{
int a[10],i,j,t;
for(i=0;i<10;i++);
scanf("%d",&a[i]);
for(j=0;j<9;j++)
for(i=0;i<=8-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("%d ",a[i]);
return 0;
}
/*
运行结果:
2 3 5 4 1 9 8 7 6 0
0 1 2 3 4 5 6 7 8 9
*/
//以下以四个数字的给举例,便于理解;
#include <stdio.h>
main()
{
int i; //定义i变量,i代表外层for循环--比较轮数;
int k; //定义k变量,k代表内层for循环--比较次数;
int t; //定义t变量,t代表临时变量,临时存放比较的结果中较大的数字,通过赋值的方式切换数字的排序;
int a[] = {30,3,6,10}; //定义数组,数组是本次要排序的数字组合;注意此处数组中一共4个数字所以 理论上是 a[4]={30,3,6,10};
//初试化i=1;并判断i是否小于等于3; 如果符合条件 那么进入for循环;(4个数字,两两对比需要进行3轮对比,i就代表了轮数;i需要经过 1,2,3 三轮的赋值;i=4的时候会跳出for循环)
for(i=1; i<=3; i++){
//初试化k=0;并判断k是否小于等于3 -i; 如果符合条件 那么进入for循环;第一轮的时候数组一共4个数字所以需要对比3次;第二轮还有3个数字需要对比2次;第三轮仅剩2个数字需要对比1次;(特:当k=0的时候是第一次对比;k从0开始赋值是为了在for循环内当数组的键值使用;)
for(k=0; k<=3-i; k++){
//判断a[K] 的数字 是否 大于 a[K + 1 ] 的数字;假设当前是第一轮第一次对比那么a[K=0] = 30,a[K=0 + 1] = 3;
if(a[k] > a[k+1]){
t = a[k]; //对上一步判断结果进行进一步处理,因为a[K] > a[K + 1 ] , 所以把a[K] 赋值给临时变量以便于 后续把这个大的数字向后平移;
a[k] = a[k+1]; //a[K + 1 ]是比较结果中比较小的数字,所以需要向前靠,向前靠就是要赋值给 a[K];空出 a[K + 1 ]便于下一步接收 较大的数字 a[K];
a[k+1] = t; //a[K + 1 ] 接收 较大的数字 a[K];
}
}
}
for(i=0; i<4; i++){//初试化i=0;并判断i是否小于4; 如果符合条件 那么进入for循环,i在for内做键值使用:
printf("第 %d个数字为:%d
",i+1,a[i]);
}
}
/*
运行结果如下:
第 1个数字为:3
第 2个数字为:6
第 3个数字为:10
第 4个数字为:30
*/
//冒泡排序,假设有n个数,需要n-1趟排序
//其中,第i趟需要 n-i次排序
#include<stdio.h>
int main(void)
{
int a[5]={5,7,9,8,1};
int i,j,w;
printf("输入5个数:%d\n",a[5]);
/*for(i=0;i<5;i++)
{
scanf("%d",&a[i]);//扫描输入5个数
}*/
//使用2层循环
for(i=1;i<=5-1;i++) //趟
{
for(j=0;j<5-i;j++) //第i趟
{
if(a[j]>a[j+1])
{//从大到小排序
w=a[j];
a[j]=a[j+1];
a[j+1]=w;
}
}
}
for(i=0;i<5;i++)
printf("%4d",a[i]);
return 0;
}
用C语言编程:从键盘输入10个学生的成绩和学号,将其排序输出,并输出中...
include<stdio.h> struct student { int id;int score;}stu[10];int main(void){ int i,m;struct student j;for( i=0; i<10; i++){ printf("请输入学生的学号:");scanf("%d",&stu[i].id);printf("请输入学生的成绩:");scanf("%d",&stu[i].score);printf("\\n");} print...
C语言编程:输入十个整数,将其中最小的数和第一个数对换位置,最大的数...
include<stdio.h> void input(int a[10]){ int i;for(i=0;i<10;i++){ scanf("%d",&a);} } void exchange(int a[10]){ int i,min,max,temp,big,small;min=max=a[0];for(i=0;i<10;i++){ if(max<a){ max=a;big=i;} if(min>a){ min=a;small=i;} } temp=a[...
C语言编程题: 输入10个字符串,将其从大到小排序后输出。
15];while(~scanf("%c",&n)){ for(int i=0;i<10;i++){ scanf("%d",&a[i]);} getchar();if(n=='A') swap1(a,10);else swap2(a,10);for(int i=0;i<10;i++){ if(i==0)printf("%d",a[i]);else printf(" %d",a[i]);} printf("\\n");} } 运行效果:...
C语言编程:键盘输入10个数,用函数实现计算数据中最大值、最小值,并返 ...
在主函数中声明一个具有10个int型元素的数组存放键盘输入的数据,声明变量ml记录最大值位置、ms记录最小值位置。自定义一个函数void Input_Max_Min(int *p,int *pl,int *ps)来完成题设要求,其中p是数组首指针,pl是最大值位置(下标)变量指针,ps是最小值位置(下标)变量指针。在主函数中输出结果...
c语言编程题:输入10个数存放在一个数组中,输入一个数存入x中,然后找出...
假定是 int 型,程序如下:include <stdio.h> int main(){ int y[10],x,i;printf("input 10 int data\\n");for (i=0;i<10;i++) scanf("%d",&y[i]);printf("input x \\n");scanf("%d",&x);printf("locations:\\n");for (i=0;i<10;i++) if (y[i]==x)printf("%d ...
从键盘上输入10个数,输出其中的奇数 c 语言编程
include<stdio.h> int main(){ int i;int a[10];printf("请输入10个数: \\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("奇数为: \\n");for(i=0;i<10;i++){ if(a[i]%2==1)printf("%d\\t",a[i]);} return 0;} ...
C语言编程:任意输入10个整数放入数组中,然后求其中的最大值和最小值...
1、任意输入10个整数放入数组中求其中的最大值和最小值的源代码如下:include <stdio.h> void main(){ int array[10];\/\/用来存储输入的数据 int max;\/\/用来存放最大的数 int i;\/\/用于循环 for(i=0;i<10;i++) \/\/一次输入10个数 { \/\/输入一个数并按回车键 scanf("%d",&a[i])...
C语言从键盘任意输入10个整数,编程实现将其中最大数与最小数的位置对 ...
include<stdio.h> define MAXSIZE 10 void Fun(int a[]){ int i;int temp;int MaxNum=a[0];int maxIndex = 0;int minIndex = 0;int MinNum=a[0];for(i=0;i<10;i++){ if(a[i]>MaxNum){ MaxNum=a[i];maxIndex = i;}else if(a[i]<MinNum){ MinNum=a[i];minIndex ...
用C语言编程实现:输入10个数字,最小数与第一个数交换,最大数与最后一...
include <stdio.h>void SwapVal(int *src, int len){ int max , min, maxlen = 0, minlen = 0; max = min = src[0]; \/\/ 初始化最大、最小值暂时为第一个 for (int i = 1; i < len; i++) { if (max < src[i]) \/\/ 元素如果比最大数的,则重置...
C语言编程 任意输入10个数,求所有正数和正数平均值负数和及负数平均值...
mian(){ float s1=0,s2=0,x;int n1=0,n2=0,i;for(i=0;i<10;i++){scanf("%f",&x);if(x>0){s1+=x;n1++;} if(x<0){s2+=x;n2++;} } printf("所有正数和=%f,平均值=%f\\n",s1,s1\/n1);printf("所有负数和=%f,平均值=%f\\n",s2,s2\/n2);} ...
枕古硬脂: #include "stdio.h" int exchange(char a[10]) //char {int i,j,t; for(i=0;i<10;i++)for(j=0;j<9-i;j++)if (a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} return(1); } void main() {char a[10]; //charprintf("please put numbers:");scanf("%s",a);exchange(a);printf("%s",a); }你是对10个字符串排序把
西峡县17062518382: c语言程序怎样用用冒泡法按升序排列十个数? - ?
枕古硬脂: #include void main() { int a[10],i,j,t; printf("Please input 10 numbers:\n"); for(i=0;i scanf("%d",&a[i]); for(i=0;i {for(j=0;j { a[i] t=a[i-1];a[i-1]=a[i];a[i]=t; } } for(i=0;i printf("%d",a[i]); } 应该是这个吧,有问题的话修改下就可以了.但是思路是这样的...
西峡县17062518382: C语言从键盘输入任意10个数,使用冒泡法将10个数按升序输出. - ?
枕古硬脂: #includeusing namespace std;int a[10];void input() { for(int i=0;i> a[i]; } }void sortarray() { for(int i=0;i
西峡县17062518382: C语言用冒泡法和选择法对10个数进行排序 - ?
枕古硬脂:[答案] 冒泡法: #define N 10 #include
西峡县17062518382: 采用冒泡排序方法,对10个数按由小到大的顺序排列的c语言程序 - ?
枕古硬脂: #include <stdio.h> int main() {int a[10];//用来存数据int i,j,temp; for(i = 0; i < 10; i ++)//输入10个数.scanf("%d",&a[i]);for (j = 0; j < 9; j++)//标准冒泡法排序for (i = 0; i < 9- j; i++){if(a[i] > a[i + 1]){temp = a[i];a[i] = a[i + 1];a[i + 1] = ...
西峡县17062518382: C语言 写程序,冒泡排序法10个数升序排列. - ?
枕古硬脂: /* 冒泡法的基本思想就是:在待排序的数据中,先找到最小(大)的数据将它放到最前面, 再从第二个数据开始,找到第二小(大)的数据将它放到第二个位置,以此类推,直到只剩下最后一个数为止. 这种排序方法在排序的过程中, 是小的...
西峡县17062518382: c语言 用冒泡法对十个整数按升序排序 - ?
枕古硬脂: #include<stdio.h> int main(void) { int a[10]; int i,j,k,max; printf("int the number:");for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) { k=i; for(j=i;j<10;j++) if(a[k]<a[j]) { max=a[j]; a[j]=a[i]; a[i]=max; } } for(i=0;i<10;i++) printf("%2d",a[i]); return 0; }
西峡县17062518382: C语言编程:用冒泡法对10个整数排序.急?
枕古硬脂: void main(){ int A[10]; int i,j; int temp; for(i = 0;i<10;i++) scanf("%d",&A[i]); for(i = 0;i<10;i++) for(j=i+1;j<10;j++) if(A[i]>A[j]) { temp = A[i]; A[i] = A[j]; A[j] = temp; } }
西峡县17062518382: c语言冒泡法对10个整数排序 - ?
枕古硬脂: #include<stdio.h> int main() { int i,j,temp; int a[10]={12,25,6,8,78,95,47,35,2,13}; for(i=0; i<10-1;i++){ //排序次数 for(j=0;j<10-1-i;j++){ //10-1-i到10-1已经排好 if(a[j]>a[j+1]){ //每次找到最大的,放在最后 temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } for(i=0;i<10;i++){ printf("%d ",a[i]); } printf("\n"); return 0; }
西峡县17062518382: c语言 用冒泡法对十个整数按升序排序 - ?
枕古硬脂: #include int main(void){ int a[10]; int i,j,k,max; printf("int the number:"); for(i=0;i<10;i++) scanf("%d", for(i=0;i<...