C语言程序,编译无错! 运行出错!!! 求救啊!!!

2025-06-21 02:38:45
推荐回答(2个)
回答1:

#include
void main()
{
void read_data(int a[100], int *m); //改成指针
void bubble(int *x,int m);
void write_data(int a[100], int m);
int a[100];
int m;
read_data(a,&m); //是数组名a,而不是a[100]的地址,用&m获取m 的地址
bubble(a,m);
write_data(a,m); //是数组名a,而不是a[100]的地址
}

void read_data(int a[100], int *m) //改成指针
{
int i;
printf ("请输入需要排序的整数个个数:\n");
scanf ("%d",m); //不用&这个符号
printf ("请输入需要排序的若干整数,用逗号隔开:\n");
for(i=0;i<*m;i++) //用m的值
{
scanf ("%d,",&a[i]);
}
}

void bubble(int *a,int m)
{
int i,j,t;
for(j=0;j for(i=0;i if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}

void write_data(int a[100], int m)
{
int i;
for(i=0;i {
printf("%d,",a[i]);
}
printf ("\n");
}

回答2:

#include

void main()
{
void read_data(int a[100], int *m); // m ----> *m
void bubble(int *x,int m);
void write_data(int a[100], int m);
int a[100];
int m;
read_data(&a[100],&m);
bubble(a,m);
write_data(&a[100],m);
}

void read_data(int a[100], int *m) // m ----> *m
{
int i;
printf ("请输入需要排序的整数个个数:\n");
scanf ("%d",m); // &m ----> m
printf ("请输入需要排序的若干整数,用逗号隔开:\n");
for(i=0;i<*m;i++)// m ----> *m
{
scanf ("%d,",&a[i]);
}
}

void bubble(int *a,int m)
{
int i,j,t;
for(j=0;j j++
for(i=0;i if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}

void write_data(int a[100], int m)
{
int i;
for(i=0;i {
printf("%d ",a[i]);
}
printf ("\n");
}