用起泡法对数组从小到大排序问题!!!!

作者&投稿:濮荔 (若有异议请与网页底部的电邮联系)
C语言将10个数用起泡法从小到大排序~

#includeint main(){int arr[]={2,3,43,-2,343,7,67,65,45,55};int i,j,temp;/*要是从键盘输入的话 就增加下面一段代码:for(i=0;iarr[j+1]){temp=arr[j+1];arr[j+1]=arr[j];arr[j]=temp;}}}//遍历数组printf("从小到大排序是:");for(i=0;i<10;i++){printf("%d",arr[i]);}}

void sort(int *x,int n)
{
int i,j,k,t;
k=1; //增加交换标志
for(i=0;i<n-1&&k;i++)
{
k=0;
/*j<n-i应该改为j<n-1-i,否则数组越界了*/
for(j=0;j<n-1-i;j++)
/**********FOUND**********/
if(x[j]>x[j+1]) //这儿是不是把i敲成j了
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
k=1;
}
}
还用就是楼上说的了

你这个是因为下标越界了。

main()
{
int a[]={9,8,4,5,2,0},i,j,t;
for (j=6;j>0;j--)
for (i=0;i<5;i++)/*改为5,用7已越界,而且改6也不行,下面a[i+1]中i+1会越界*/
{
if (a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}

for(i=0;i<6;i++)/*改动,6个元素则下标最大为5*/
printf("%2d",a[i]);
getch();
}

main()
{
int a[]={9,8,4,5,2,0},i,j,t;
for (j=6;j>0;j--)
for (i=0;i<7;i++) // 这一行要改成for (i=0;i<5;i++)
{if (a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
for(i=0;i<=6;i++) // 这一行要改成 for(i=0;i<6;i++)
printf("%2d",a[i]);
getch();
}


编写C语言程序,把一个数组按从小到大的次序排列起来
number[j] = number[j + 1];\/\/将相对较小的元素送达前面一个位置 number[j + 1] = k;\/\/将中间变量元素送给后面一个位置 } if (New_number[j] < New_number[j + 1])\/\/比较大小并将大的赋给前面的数组 { k = New_number[j + 1];\/\/将相对较小的元素赋值给中间元素 New_number[...

C语言:冒泡排序法将数组中10个元素从小到大排序,并找出最小值?_百度...
include<stdio.h> int main(){ int a[11],min=0,t;for(int i=0;i<10;i++)scanf("%d",&a[i]);min=a[0];for(int i=0;i<10;i++)if(a[i]<min)\/\/求最小值 min=a[i];for(int i=0;i<10;i++)\/\/冒泡排序 for(int j=0;j<9-i;j++)if(a[j]>a[j+1]){ t=a...

用C 语言 对数组A中的N(0<N<L00)个整数从小到大进行连续编号,要求不能...
scanf("%d",a+k);b[i]=a[k];\/\/保存到数组a中,复制到数组b中 } for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++){ if(b[j]>b[j+1]){t=b[j+1];b[j+1]=b[j];b[j]=t;}\/\/起泡法对数组b元素排序 } for(j=0;j<n-1;j++) \/\/对排序后的b数组元素进行标记 { if...

起泡法排序
起泡法排序如下:起泡排序算法的原理 起泡排序是交换排序的一种,其基本方法是:设待排序元素列中元素...起泡排序的基本算法;template<classT>;voidBubbleSort(T arr[],intn){起泡排序的时间复杂度分析 起泡排序算法中,第i趟起泡需要执行n-i次比较和交换操作。因此,i从1到n-1,执行的比较操作的次数...

编写函数用冒泡排序法对数组中的n个数据进行从小到大的排序。
1、新建一个163.php。2、输入php网页的结构(<?php?>)。3、声明PHP与浏览器交互的文件类型和编码。4、使用 array() 函数定义一个$numbers数组。5、使用 sort() 函数对数组 $numbers 中的元素进行排序。6、使用 print_r() 函数,输出排序后的数组。7、运行网页,在浏览器中输出排序后的数组。

matlab如何将一个一维数组从大到小排列?
matlab一维数组将数据从大到小排列使用矩阵排列,俗称“起泡法”,方法思想如下:第一、用两个并列的for循环语句,在第二个for 语句中又嵌套了一个循环语句。第一个for语句用于输入10个元素的初值。第二个for语句用于排序。本程序的排序采用逐个比较的方法进行。第二、在i次循环时,把第一个元素的下标...

用c语言编写,用起泡法对15个数据组成的数组进行排序 从大到小
int main(){ int array[10]={1,10,9,2,3,8,7,6,4,5};for(int i=0;i<10;i++)for (int j=0;j<10-i-1;j++){ if (array[j]<array[j+1]){ int a=array[j+1];array[j+1]=array[j];array[j]=a;} } for(i=0;i<10;i++)printf("%d ",array[i]);return 0;...

用起泡法对数组中的10个整数按由大到小的顺序排列,要求用函数调用的方...
include <stdio.h>int a[15];void bubblesort(){ int i,j,t; for(i=0; i<10; i++) for(j=0; j<9; j++) if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; }}int main(){ int i; for(i=0; i<10; i++) sca...

...型数组,要求用起泡法方法将这20个元素按从小到大排序
int main(){ double a[20],t;int n,i,j;n=20;printf("请输入%d个实数:\\n",n);for(i=0;i<n;i++)scanf("%lf",&a[i]);printf("\\n");for(j=0;j<(n-1);j++) \/*进行n-1次循环,实现n-1趟比较*\/ for(i=0;i<(n-1-j);i++) \/*在每一趟中进行n-1-j次比较*\/ ...

从键盘输入10个整数存入数组中,用‘起泡法’对输入的10个数排序后按从 ...
void main(){ int a[10];printf("Input 10 numbers!");printf("\\n");for(int i=0; i<10; i++){ scanf("%d",&a[i]);} printf("The result:");for(i=9; i>0; i--){ for(int j=0; j a[j+1]){ int temp = a[j];a[j] = a[j+1];a[j+1] = temp;} } ...

禄劝彝族苗族自治县18725564875: 用起泡法对数组从小到大排序问题!!!! -
樊傅兰达: 你这个是因为下标越界了.main() {int a[]={9,8,4,5,2,0},i,j,t;for (j=6;j>0;j--)for (i=0;i<5;i++)/*改为5,用7已越界,而且改6也不行,下面a[i+1]中i+1会越界*/{if (a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}} for(i=0;i<6;i++)/*改动,6个元素则下标最大为5*/printf("%2d",a[i]);getch(); }

禄劝彝族苗族自治县18725564875: 试题 ( 用起泡法对几个数同小到大排序,即将相邻的两个数比较将小的调以前头. -
樊傅兰达:[答案] 起泡法是从一端开始比较的,第一次循环就是把最小数上升到第一位置,第二次循环就是把第二最小数上升到第二位置.如此循环实现数据的排序.下面举一个用起泡法对n个数字进行排序的例子: #include void main() { int a[100]; int n,i,j,t; printf("请...

禄劝彝族苗族自治县18725564875: C语言 用冒泡排序法将一组整数(存在于数组中)按照从小到大排列 -
樊傅兰达: 如果要解决这个问题,用结构体更加的方便,用数组会比较麻烦一些,不过是可以解决的. #include#include#include#define stu_num 5 #define sub_num 4 //计算个人总成绩 void count(int a[stu_num][sub_num+1]) { int i, j, sum; for(i=0; i

禄劝彝族苗族自治县18725564875: 编写m 文件:用起泡法对十个数由小到大排序,即将相邻两个数比较,将小的调到前 -
樊傅兰达: #include<stdio.h> #include<stdlib.h>void bubblesort(int a[],int n)//n为数组a的元素个数 {int i,j,temp;for(j=0;j<n-1;j++)for(i=0;i<n-1-j;i++){if(a[i]>a[i+1])//数组元素大小按升序排列{temp=a[i];a[i]=a[i+1];a[i+1]=temp;}} }void print(int a[], int n) ...

禄劝彝族苗族自治县18725564875: C语言编程题 题目描述 使用冒泡排序法对数组元素从小到大进行排序,要求输出每一趟排序后的数组内容( -
樊傅兰达: #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]=...

禄劝彝族苗族自治县18725564875: 冒泡排序如何将数组从小到大排列c# -
樊傅兰达: //冒泡排序,我写了一下按升序的方法: //C# Codestatic void Main(string[] args) { string str = "6,9,4,10,8,2,13"; char[] q = {','}; string[] items = str.Split(q[0]); int len = items.Length; string tmp = ""; for (int i = 0; i < len; i++) { for (int j = i; j < len; j++)...

禄劝彝族苗族自治县18725564875: C++语言程序 用起泡法对10个数从大到小排序 -
樊傅兰达: 给你个全的: #include void main() {double a[15],temp;int i,j;cout< for(i=0;i<10;i++){cin>>a[i];}for(i=0;i<10;i++)for(j=i;j<10;j++){if(a[i]<=a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}cout< for(i=0;i<10;i++){cout< } }

禄劝彝族苗族自治县18725564875: C语言:编写函数,用冒泡法对一组数按从小到大的顺序进行3轮排序? -
樊傅兰达: #include "stdio.h" void fun(int a[],int n) { int i,j,t;for(i=0; i<3; 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;} } main() { int a[10],i;for(i=0; i<10; i++)scanf("%d",&a[i]);fun(a,10);for(i=0; i<10; i++)printf("%5d",a[i]);printf("\n"); }

禄劝彝族苗族自治县18725564875: 怎样通过matlab用起泡法对一组数据进行从小到大排列 -
樊傅兰达: 举个例子对a=[2 3 6 1 9 4]从小到大排序,最后显示a=[1 2 3 4 6 9],满意请采纳,谢谢! a=[2 3 6 1 9 4]; [k,p]=size(a);for i=1:pfor j=(i+1):pif a(i)>a(j)b=a(i);a(i)=a(j);a(j)=b;endendenda

禄劝彝族苗族自治县18725564875: 用起泡法对数组中的10个整数按由小到大的顺序排列,要求用函数调用的方法. -
樊傅兰达: 你输入的是十个数,在控制循环中只输入了9个数, 输出中要有间隔,才能更清晰:另外说一下,最好代码要规范一下:#include int main() { void order(int a[10]); int a[10],i; printf("please input 10 numbers:\n"); for(i=0;i<10;i++)////////////////9 to 10 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网