|
![]() | 作者: bailove [bailove]
![]() |
登录 |
main() { void sort(); int a[10],i,*p; p=a; printf("\ninput data:"); for (i=0;i<10;i++) scanf("%d",&a[i]); printf("\nthe origina1 sequence:"); for (p=a;p<a+10;p++) printf("%4d",*p); sort(a,10); printf("\nthe sorted sequence:");------》好象这个语句没有被执行,因为没有输出。 for(p=a;p<a+10;p++) printf("%d",*p); } void sort(sp,n) int *sp,n; { int i,j,temp,f=0; int *low,*high,*mid; for(i=1; i<n; i++) { low=sp; temp=*(sp+i); high=sp+i-1; while(low<=high) { mid=low+(low-high)/2;――――――》这个语句改为mid=(low+high)/2不让通过是为什么啊 if (temp<*mid) {f=1; high=mid-1; } else low=mid+1; } if(f==1) { for (j=i-1; j>=low-sp; j--) *(sp+j+1)=*(sp+j); *low=temp; f=0; } } } 这个程序在我的机子上,没能起排序作用 |
地主 发表时间: 05/28 01:06 |
![]() | 回复: hannyu [hannyu] ![]() |
登录 |
恐怕只有你自己能看懂吧。 用数组就行了啊,这样用指针危险。真不知道两个地址相加后得到得是什么,再/2就更不得而知了。 |
B1层 发表时间: 05/29 11:36 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号