黑马程序员技术交流社区
标题: 自己写的冒泡排序,大家看看有什么可以改进的地方不 [打印本页]
作者: 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
刚看了一眼文件里的还有,不知道粘到这里为什么就没了。。
作者: lxszl 时间: 2015-9-2 23:20
嗯,谢谢
不知道为什么拷过来就没了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |