C语言编程 数组排序
发布网友
发布时间:2022-04-23 04:58
我来回答
共3个回答
热心网友
时间:2023-10-15 13:08
你把main()里面的 fun(a)下面的for循环输出 放到子函数fun()里面输出试试!你主函数里面定义的变量名与子函数的函数名冲突了!
#include "stdio.h"
void fun(int *a)
{
int temp,i,j;
for(j=0;j<9;j++)
{
for(i=0;i<9;i++)
{
if(a[i]<a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
void main()
{
int i=0,a[10];
//int b[10];
printf("请输入数组中10个元素的值:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a);
//b=fun(a);
//for(i=0;i<10;i++)
//printf("%d ",a[i]);
}
热心网友
时间:2023-10-15 13:09
一维数组只用一个for语句就搞定了吧,我认为fun函数里的第一个FOR语句去掉。
热心网友
时间:2023-10-15 13:09
#include <stdio.h>
#define N (10)
void sort(int *a,int n);
int main()
{
int a[N],i;
for(i=0;i<N;++i)
{
scanf("%d",&a[i]);
}
sort(a,sizeof(a)/sizeof(a[0]));
for(i=0;i<N;++i)
{
printf("%d ",a[i]);
}
}
void sort(int *a,int n)
{
int i,j,t;
for(i=0;i<n-1;++i)
{
for(j=0;j<n-1-i;++j)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}