C++提高题 输入一个数组然后以冒泡排序的方式按从小到大输出 详见补充 求解

完整题目
定义一个数组(100为其长度),然后输入。然后,以冒泡排序的方式按从小到大排列,然后输出

用for语句,有一个变量t,有源文件者,必采纳,谢!

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 100
int main(){
    int a[N];
    int i;
    for(i=0;i<N;i++)
        a[i]=rand();   
   for(i=0;i<N;i++)
        printf("%d ",a[i]);
    printf("\n");
   
   //冒泡排序,升序,变量t
    int t;
    int j;
    //for语句
    for(i=N-1;i>=1;i--){
        for(j=0;j<i;j++){
            if(a[j]>a[j+1]){
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    for(i=0;i<N;i++)
        printf("%d ",a[i]);
    printf("\n");
    getchar();
    return 0;
}

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-31
#define N       100
int main()
{
        int array[N] = {0};
        int t;
        int i,j;
        
        // input
        for (i=0; i<N; i++)
            fscanf(stdin, "%d", &array[i]);
        // bubble sort
        for (i=0; i<N; i++) {
                for (j=i;j<N;j++) {
                        if (array[j] < array[i]) {
                                t = array[j];
                                array[j] = array[i];
                                array[i] = t;
                        }
                }
        }
        // output
        for (i=0; i<N; i++) {
             printf("%d ", array[i]);
        }
        printf("\n");
}

在C++中,随意输入四个数,然后按照由小到大的顺序输出 ,的程序怎么写啊...
建立一个数组 循环比较,前一个跟后一个比较大小,小的放前面 (这一步可以通过建立一个中间变量来存储比较后得到的较小值)比如说数组为:n[],第一轮比较n[0]和n[1],将较小值赋给中间变量n,大的赋给n[1],然后再将n(较小值)赋给n[0],以此类推。输出,就OK了。嘿嘿,具体代码忘...

C++编程:将10个整数按从小到大的顺序排列
可将10个数放入数组,用冒泡排序将其按升序进行排序。include <iostream>using namespace std;\/\/ 冒泡排序长度为len的数组dat(升序)void sort(int *dat, int len){ int tem; for (int i = 0; i < len; i++) { for (int j = 0; j < len - i - 1; j++) \/\/ 比较...

求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
为了实现C++程序,可以按照以下步骤来完成一个从键盘输入10个整数并按从小到大排序的功能:首先,创建一个结构体,名为`IntInfo`,包含整数值(数值域)、排名(排名域)和序号(序号域)。接着,定义一个`IntInfo`类型的数组`d`,用于存储输入的10个整数及其相关信息。定义两个自定义函数:`compareNu...

求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
要实现一个C++程序,可以从键盘输入10个整数并按升序排序,下面是具体步骤:首先,创建一个结构体,包含整数值(int),对应的排名(int)以及序号(int)。接着,定义一个结构体数组`d`来存储这10个整数的信息。自定义一个函数,用于比较两个整数的大小,这将在排序过程中起到关键作用。另一个函数则...

求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
方法步骤如下:1.首先,定义一个结构,包括数值、排名和序号。2.定义结构数组变量d,保存所有整数信息。3.接下来,定义一个自定义函数来比较整数序列中任意两个整数的大小。4.定义一个自定义函数,比较整数序列中任意两个数字的序数大小。5.在主函数中,首先定义两个整数,并保存整数个数和排名计数...

...从键盘输入一个正整数N,再输入N个整数,按从小到大的顺序输出。_百度...
for(j=0;j<n-1;j++)\/\/冒泡排序进行从小到大排列 for(i=0;i<n-1-j;i++) if(a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} printf("The sorted numbers:\\n"); for(i=0;i<n;i++) printf("%d ",a[i]);} 追问 由于第一个有人回答了,而且你们两人的思路基本一样...

用C++程序编写:输入4个整数,要求按由大到小的顺序输出
我试了,你这个程序可以运行,而且结果正确。估计你是只运行没有输入数据。编译-运行后输入四个数,中间用空格隔开,回车,然后就输出排序结果了,只是你这程序输出时没有间隔开,四个数挤一块儿了。你的程序只是将某种排序法的过程一步一步用if语句写了出来,建议学一下循环语句及数组、指针。这样...

...做以下题目:已有一个已排好的数组,要求输入一个数后,按原来排序的规...
1、先逐个筛选数组中的每个元素。2、再比较每相邻的两个元素。3、根据比较结果进行元素的交换,以实现排序。4、如果要从终端输入数组,就加一个输入函数。5、最后,如果是从小到大排序,基本逻辑也是一样的。注意事项:C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言...

用C语言实现从键盘上输入不确定个数的数字,将数字从小到大排序后...
对于输入的数据的个数不确定的情况,一般会预设一个特殊的非法值(这个值是属于论域之外的一个值)作为终止值,例如如果论域是正整数,则通常会将0作为终止值,即当输入0时结束,且0不作为有效数据。 因此如果你要输入的都是正整数,则程序可如下(对于其它情况可采用类似方法) #include <stdi...

...写出任意一种你所知的排序算法(比如:冒泡排序, 归并排
\/\/实现对数组a[]中a[first]到a[last]升序的“冒泡”排序 int i,j,temp;for(i=first; i<=last; i++){ for(j=first; j< last-i; j++){ if(a[j] > a[j+1]){ temp = a[j];a[j] = a[j+1];a[j+1] = temp;} } } } \/***插入排序***\/ void InsertSort(...

相似回答