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

相似回答