关于C语言数组利用指针排序的问题
来源:互联网 发布:淘宝网店贷款 编辑:程序博客网 时间:2024/05/22 15:21
下面是利用时间做为随机数的种子生成一个数组,然后利用指针进行排序,结果出现了想不到的错误,错误的代码如下:
#include<stdio.h> #include<stdlib.h>#include<time.h>#define N 10void sort(int *);int main(){time_t ts;//时间数据类型unsigned int num = time(&ts);//获取时间,转换为整数srand(num);//初始化随机种子 int a[N];for(int i=0;i<N;i++) {a[i] = rand() % 100;printf("%d\t%d\n",i,a[i]);}sort(a);printf("排序后的数据:\n") ;for(int j=0;j<N;j++){printf("%d\t%d\n",j,a[j]);}system("pause");}void sort(int a[]){int * temp;for(int i=0;i<N-1;i++){a[i];for(int j=0;j<N-i;j++) {if(*(a+j) > *(a+j+1)){temp = &a[j];<span style="white-space:pre"></span>*temp = *(a+j);*(a+j) = *(a+j+1);*(a+j+1) = temp; }} }}
而上面的代码错误出现在:
void sort(int a[]){int * temp;for(int i=0;i<N-1;i++){a[i];for(int j=0;j<N-i;j++) {if(*(a+j) > *(a+j+1)){temp = &a[j];*temp = *(a+j);*(a+j) = *(a+j+1);*(a+j+1) = temp; }} }}正确的应该代码:
void sort(int a[]){int temp;for(int i=0;i<N-1;i++){a[i];for(int j=0;j<N-i;j++) {if(*(a+j) > *(a+j+1)){temp = *(a+j);*(a+j) = *(a+j+1);*(a+j+1) = temp; }} }}
0 0
- 关于C语言数组利用指针排序的问题
- 小小的C语言问题指针数组赋值----关于指针和数组。
- c语言数组指针的问题
- C语言数组与指针的问题
- c语言的数组与指针问题
- C语言:关于数组指针
- 利用指针的数组排序
- [C语言]关于运用指针的问题。
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数
- C语言数组指针问题
- C语言中关于指针,二维数组等的问题,一个有趣的发现
- 关于C语言字符数组、字符串和指针的相关问题
- 关于“c语言从键盘输入字符串到指针数组”的问题
- 关于C语言的字符数组问题
- 关于C语言数组的定义问题
- c语言冒泡排序,指针,数组
- C语言:双重指针对数组排序;
- C语言中关于指针数组的一个例子
- uva 10125 - Sumsets
- OpenGL错误和性能Tips
- 关于jdk的报错问题 It is indirectly referenced from required .class files
- 火狐浏览器安装firebug失败的解决方法
- 线段树模板
- 关于C语言数组利用指针排序的问题
- nm 目标文件格式分析
- struts 框架
- Unity获取游戏对象详解
- C++Primer 练习9.44 解答
- zoj 2100 Seeding
- cocos2dx 关于lua 绑定的环境配置官方文档翻译与 将自定义c++方法绑定到lua的的方法
- 【黑马程序员】多态的概念和条件
- 关于linux下很多eclipse快捷键 失效的 问题