作者windf4 (windf4)
看板Programming
标题Re: [问题] C++以函数传送阵列,而以指标方式接收
时间Wed Apr 11 20:14:38 2007
※ 引述《quota (怎样转移档案?)》之铭言:
: 我想以函数传送阵列,而以指标方式接收
: 不过结果却让人失望,附上我的原始码,
: 请各位帮我看看是哪里出了问题,谢谢!
: #include <iostream>
: using namespace std;
: void array_dump(int *a, int size )
: {
: int *ptr;
: for ( ptr = a; ptr < (a+size) ; ptr++ )
: cout << *ptr ;
: cout << endl;
: }
改用 cout << " " << *ptr; 的写法,输出会好看得多。
: void bubble_sort(int *a, int size)
: {
: int i,temp;
: int *ptr;
: for( i = 0 ; i < size ; i++ )
: for( ptr = a; ptr < (a+size) ; ptr++ )
: {
: if( *ptr < *(ptr+1) )
: {
: temp=*(ptr+1);
: *(ptr+1)=*ptr;
: *ptr=temp;
: }
: array_dump(a,size);
: }
: }
内圈的 for 存取了超出阵列范围的元素,合理范围是从 a+0 ~ a+size-1
因为 if 会取到 ptr+1 所以只要做 a ~ a+size-2 的部份[或 a+1 ~ a+size-1 ]
另外 bubble sort 不需要做那麽多次,内回圈的次数会逐次少1
main 的部份没什麽问题恕删。
--
另外写程式请记得缩排,适当的排版对写作和阅读除错都有帮助。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.231.74.249
1F:推 quota:谢谢 因为我没有缩排 所以少了一个{}而不知218.169.114.247 04/15 01:50