C语言编程题 题目描述 使用冒泡排序法对数组元素进行排序,要求输出每一趟排序后的数组内容。数组大小

C语言编程题
题目描述
使用冒泡排序法对数组元素进行排序,要求输出每一趟排序后的数组内容。数组大小N<10,数组元素定为正整型。
输入
依次输入数组各个元素,各元素之间用空格隔开。
输出
用一行输出一趟排序后的结果。
样例输入
4 6 2 8 5 1
样例输出
4,2,6,5,1,8
2,4,5,1,6,8
2,4,1,5,6,8
2,1,4,5,6,8
1,2,4,5,6,8

#include<stdio.h>

int main()

{int n,i,j,t,a[20];

 scanf("%d",&n);

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

   scanf("%d",&a[i]);

 for(i=0;i<n-1;i++)

 {for(j=0;j<n-1-i;j++)

    if(a[j]>a[j+1])

  {t=a[j];a[j]=a[j+1];a[j+1]=t;}

  for(j=0;j<n-1;j++)

    printf("%d,",a[j]);

  printf("%d\n",a[j]);

 }

  return 0;

}

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-23
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
using namespace std;

void sort(int arry[],int counts)//冒泡排序法
{
for(int i=0;i<counts;i++)
{
for(int j=0;j<counts-i-1;j++)
{
if(arry[j]>arry[j+1])//比较大小
{
int temp;
temp=arry[j];
arry[j]=arry[j+1];
arry[j+1]=temp;
}
}
for (int k=0;k<counts;k++)//输出
{
cout<<arry[k]<<" ";
}
cout<<'\n';
}
}

int main()
{
int arry[10];
char c;
int counts=0;
while((c=getchar())!='\n')//获取一行输入
{
if(c>='0'&&c<='9')
{
ungetc(c,stdin);//将获取的字符返回流
cin>>arry[counts++];
}
}
sort(arry,counts);
system("pause");
return 0;
}

...使用冒泡排序,从小到大排列,输出每一趟排序后的结果以及总的比较次...
include<stdio.h>int main(){ int num=6,tep,sum=0; int a[6]= {2,1,10,8,7,6}; int i,j; printf("原数组:"); for(int p=0; p<num; p++) printf("%d ",a[p]); puts(""); for(i=0; i<num-1; i++) { for(j=0; j<num-i; ...

C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序
代码如下(对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...

C语言冒泡排序法
冒泡排序每一趟排序把最大的放在最右边。比如:87 12 56 45 78 87和12交换:12 87 56 45 78 87和56交换: 56 87 45 78 87和45交换: 45 87 78 87和78交换: 78 87 到此第一趟排序结束,接下来的每一趟排序都是这样。include<stdio.h>void Print(int *num, int n){ int...

C语言冒泡排序法代码
1. 冒泡排序是一种简单的排序算法,它通过重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。2. 冒泡排序的基本思想是不断地从数列中取出最大的元素,放到最后。3. 例如,对于数列 87, 12, 56, 45, 78,首先比较 87 和 12,发现顺序错误,交换它们,得到 12, 87...

C语言冒泡排序法是怎么排序的?
C语言冒泡排序法的排序规则:将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。初始 R[1..n]为...

c语言冒泡排序的编程
include <stdio.h>void sort(int *a,int len){int i=0;int j;int t;for(i=0;i<len-1;i++) {for(j=0;j<len-i-1;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}int main(int argc, char *argv[]){int a[10]={-999,2,3,77,12,88,0,-8...

c语言一维数组冒泡排序
最后两个数是不参与比较的。(6)依次类推,每一趟比较次数减少依次比上一趟减少一次。算法分析:(1)由此可见:N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数(2)冒泡排序的优点:每进行一趟排序,...

C语言的冒泡排序是什么?求解释
你好,很高兴为你解答 所谓冒泡排序即:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数...

C语言冒泡排序加解题思路?
冒泡排序,就是对一组数进行逐趟排序的方法,具体分为升序和降序。以升序为例。每一趟的任务,就是从一组数的第一个数开始,依次比较相邻的两个数的大小。既然是升序,那么比较后,如果前者大于后者,那么两者交换位置。就这样依次地比下去。这样的话,第一趟就把最大的数排到了最后。而每再比较...

C语言冒泡排序。
include<stdio.h> void main(){ int a[10];int i,j,t;printf("input 10 numbers:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<9;j++) \/*进行9次循环 实现9趟比较*\/ for(i=0;i<9-j;i++) \/*在每一趟中进行9-j次比较*\/ if(a[i]>a[i+1]) \/*相邻两...

相似回答