黑马程序员技术交流社区

标题: 自己写的冒泡排序,大家看看有什么可以改进的地方不 [打印本页]

作者: lxszl    时间: 2015-9-2 19:09
标题: 自己写的冒泡排序,大家看看有什么可以改进的地方不
#include<stdio.h>

void receiveArr(int arr[],int len);
void maoPao(int arr[],int len);
void printArr(int arr[],int len);

int main(){
   
    //定义数组
    int len=0;
    printf("请输入数组元素个数:\n");
    scanf("%d",&len);
    int arr[len];
   
    //接收数组元素
    receiveArr(arr,len);
   
    //冒泡排序
    maoPao(arr,len);
   
    //遍历数组
    printArr(arr,len);
   
   
    return 0;
}


//接收数组元素
void receiveArr(int arr[],int len){
    for(int i=0;i<len;i++){
        printf("请输入arr[%d]的值:\n",i);
        scanf("%d",&arr);
    }
    printf("输入成功!\n");
}



//冒泡排序
void maoPao(int arr[],int len){
    printf("当前是冒泡排序模式:\n排序完成.\n");
    for(int i=0;i<len-1;i++){
        for(int j=0;j<len-1-i;j++){
            if(arr[j]>arr[j+1]){
                int temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
}


//遍历数组
void printArr(int arr[],int len){
    for(int i=0;i<len;i++){
        printf("%d\n",arr);
    }
}


作者: 张中付    时间: 2015-9-2 19:15
你那个数组长度一开始未知,不会报错?
作者: 颖峰    时间: 2015-9-2 19:21
写的不错  多加油努力吧
作者: 麟子    时间: 2015-9-2 20:03
有问题
你的len=0,无法标记数组长度,后续的数组由于len=0都会出现问题
如果你想在程序运行时自定义数组长度  可以使用一条scanf获取数组长度而不是写为零
作者: 1wang2huan    时间: 2015-9-2 21:23
//遍历数组 void printArr(int arr[],int len){     for(int i=0;i<len;i++){         printf("%d\n",arr); 改成arr[i]
作者: 1wang2huan    时间: 2015-9-2 21:24
scanf("%d",&arr);  改成&arr[i]
作者: 唐肖虎    时间: 2015-9-2 21:32
写的很不错啊,不过int len=0,改成int len;    把遍历数组中的printf("%d\n",arr);改成printf("%d\n",arr[i]);就好了,。。。
作者: lxszl    时间: 2015-9-2 23:19
1wang2huan 发表于 2015-9-2 21:23
//遍历数组 void printArr(int arr[],int len){     for(int i=0;i

刚看了一眼文件里的还有,不知道粘到这里为什么就没了。。
作者: lxszl    时间: 2015-9-2 23:20
唐肖虎 发表于 2015-9-2 21:32
写的很不错啊,不过int len=0,改成int len;    把遍历数组中的printf("%d\n",arr);改成printf("%d\n",arr); ...

嗯,谢谢
不知道为什么拷过来就没了




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