菜鸟学c语言,排序小程序编译出现段错误 ( 积分: 100 )

  • 主题发起人 主题发起人 老迟
  • 开始时间 开始时间

老迟

Unregistered / Unconfirmed
GUEST, unregistred user!
main(){
int a[100],n,*num[100],i;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&amp;a);
num=&amp;a;}
line(a,num,n);
for(i=0;i<n;i++)
printf("%8d",a);
}
void line(int a[100],int *num[100],int n){
int **p,t,i,j;
for(i=0;i<n-1;i++){
*p=num;
for(j=i+1;j<n;j++)
if(**p>*num[j]) p=num+j;
t=*num;
*num=**p;
**p=t;
}
}
 
main(){
int a[100],n,*num[100],i;
scanf("%d",&amp;n);
for(i=0;i<n;i++){
scanf("%d",&amp;a);
num=&amp;a;}
line(a,num,n);
for(i=0;i<n;i++)
printf("%8d",a);
}
void line(int a[100],int *num[100],int n){
int **p,t,i,j;
for(i=0;i<n-1;i++){
*p=num;
for(j=i+1;j<n;j++)
if(**p>*num[j]) p=num+j;
t=*num;
*num=**p;
**p=t;
}
}
 
没人答复不能结贴吗?
 
函数没有声明
void line(int a[100],int *num[100],int n) 加到main里面,
或则void line(int a[100],int *num[100],int n){...}整个放到main()前面
 
把这行void line(int a[100],int *num[100],int n);
加到main前面,
或则void line(int a[100],int *num[100],int n){...}整个放到main()前面
void line(int a[100],int *num[100],int n)
{
int **p,t,i,j;
for(i=0;i<n-1;i++){
*p=num;//******error**//
for(j=i+1;j<n;j++)
if(**p>*num[j]) p=num+j;
t=*num;
*num=**p;
**p=t;
}
}
*p=num;这句不对,改为p=&amp;num;就可以了,在VC6.0下调试通过
 

Similar threads

I
回复
0
查看
658
import
I
I
回复
0
查看
473
import
I
I
回复
0
查看
843
import
I
I
回复
0
查看
603
import
I
后退
顶部