C语言新手,关于通过函数SORT实现数组元素的升序排列,不会这道题,想死啊~
发布网友
发布时间:2022-04-23 04:58
我来回答
共3个回答
热心网友
时间:2023-10-15 13:08
#include"stdio.h"
void main(void)-----------------------------最好用int main()
#define N 10--------------------------------- 宏定义写main()上面
{int sort(int a[],int n);---------------------函数定义写main()上面
int a[N],i;
printf("请输入%d个实数:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)-------------------------------既然是排序,为何不调用函数??sort(a,N);
printf("%d",&a[i]);----------------------------printf()格式错了吧,没有&号
}
int sort(int a[],int n)-----------------void sort(int a[],int n)
{int i,j,t;
for(i=1;i<9;i++)-------------------------用冒泡是吧
for(j=0;j<9-i;j++)---------------------错了
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
return a[i];---------------------------return没有意义,传递参数时传递数组名就OK
}
修改后
#include"stdio.h"
#define N 10
void sort(int a[],int n);
int main()-------------------------------------你的前几行很不规范
{
int a[N],i;
printf("请输入%d个实数:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
sort(a,N);
for(i=0;i<N-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[N-1]);--------------------输出要美观
return 0;
}
void sort(int a[],int n)
{
int i,j,t;
for(i=9;i>=0;i--)-----------------注意这里的取值,冒泡法
for(j=0;j<=i;j++)
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
热心网友
时间:2023-10-15 13:09
修改如下:
//---------------------------------------------------------------------------
#include"stdio.h"
#define N 10 /*注意这里*/
void main(void)
{void sort(int a[],int n);
int a[N],i;
printf("请输入%d个整数:\n",N); /*注意这里*/
for(i=0;i<N;i++)
scanf("%d",&a[i]);
sort(a,N); /*注意这里*/
for(i=0;i<N;i++)
printf("%d ",a[i]); /*注意这里*/
}
void sort(int a[],int n) /*注意这里*/
{int i,j,t;
for(i=1;i<10;i++) /*注意这里*/
for(j=0;j<=9-i;j++)/*注意这里*/
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
/*注意这里*/
}
//---------------------------------------------------------------------------
热心网友
时间:2023-10-15 13:09
int sort(int a[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=1;j<n;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}