老师都不会的数组问题!!各位赶紧来支招啊!
呵呵!激动啊!老师中被俺难住了!话说书上有这样一个题:用选择法对数组中10个整数由小到大排序。下面是程序代码#include <iostream>
using namespace std;
int main()
{
void select_sort(int a[],int n);
int a[10],i;
cout<<"enter the original array:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
cout<<endl;
select_sort(a,10);
cout<<"the sorted srray:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void select_sort(int a[],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
下面正式开说,注意上面代码的红色字体。个人感觉这个K很鸡肋,明明可以直接比较两个数,为什么还要加个K呢?所以我对形参函数做了一下改变;
void select_sort(int a[],int n)
{int i,j,k;
for(i=0;i<10;i++)
for(j=i+1;j<n;j++)
{if(a[i]>a[j])
t=a[i];a[i]=a[j];a[j]=t;
}
}
问题是,试验了一下,编译什么的都没有错,但一到执行就执行不了了,特别起怪。老师也说不清楚那错了。
为什么那个K不能去掉呢?K的作用是干嘛的呢?求解。。。。。。。。。。