黑马程序员技术交流社区

标题: 这个冒泡随机选数冒泡排序哪里错啦 [打印本页]

作者: iamcominghm    时间: 2015-11-30 22:15
标题: 这个冒泡随机选数冒泡排序哪里错啦
#include<stdio.h>
#include<stdlib.h>
int a[20];
int main(){
    int b=arc4random_uniform(40)+10;;
        printf("\t\t\t\t冒泡排序哦!\n");
        printf("在1-20间随机抽取20个数字作为一个数组");
        printf("他们分别是:");//随机数数组
        for (int i=0; i<20; i++) {
            int b=arc4random_uniform(19)+1;
            a=b;
            printf("%d ",a);
        }

        printf("\n");


    printf("使用冒泡排序后他们是:"); //冒泡排序
    for (int i=0; i<20; i++) {
        for (int j=0; j<j-i-1; j++) {
            if (a[j]<a[j+1]) {
                int temp;
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
             }
        }
    }
    for (int i=0; i<20; i++) {
        printf("%d ",a);
    }
    printf("\n");
    return 0;
}



作者: 打滚的橘子    时间: 2015-11-30 22:36
选取数组的时候,a是一个地址常量,不能被赋值,应该是a[i] = b。打印数组用a[i]。排序循环,j循环的控制条件错了。
作者: 打滚的橘子    时间: 2015-11-30 22:37
还有最前面定义的b其实没用上,在for循环里的b覆盖了全局的b。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2