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;
}
}
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com