首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

c语言函数排序问题

发布网友

我来回答

5个回答

热心网友

错的地方很多。。改了下,
#include<stdio.h>
int sort(int num[5]);
void main()
{
int numm[5],i,a;
for (i=0;i<5;i++)
scanf("%d",&numm[i]);
sort(numm); //调用排序
for (i=0;i<5;i++)
printf("%d ",numm[i]);
}
int sort(int num[5])
{
int m,n,t;
for (m=0;m<4;m++)
for(n=m+1;n<5;n++)//冒泡排序
{
if (num[m]<num[n])
{
t=num[n];
num[n]=num[m];
num[m]=t;
}

}

return 1;

}

热心网友

void main()
{
int sort(int num[5]);//声明不需要数组长度,因为不分配空间
int numm[5],i,a;//*a
for (i=0;i<5;i++)
scanf("%d",&numm[i]);
a=numm[5];//没有numm[5]这个元素,超界,a=num;

for (i=0;i<5;i++)
printf("%d",a);//指针需要*,而且要a++
}
int sort(int num[5])//你这个算法没有实现排序,
{
int m,n,t;
for (m=0;m<5;m++)
for(n=0;n>5-m;n++)
{
t=num[n];
num[n]=num[n+1];
num[n+1]=t;
}

return(num[5]);

我给你一个算法,插入排序
#include<iostream>
using namespace std;

int
insert_sort(int num[], int len)
{
for (int i = 0; i < len - 1; i ++)
{
int mid = num[i + 1];
int flag = 0;
for (int j = i; j >= 0; j --)
{
if (mid > num[j])
{
num[j + 1] = mid;
flag = 1;
break;
}
num[j + 1] = num[j];
}
if (!flag)
{
num[0] = mid;
}
}

return 0;
}

int
main()
{
int num[5];
while (1)
{
for (int i = 0; i < 5; i ++)
{
scanf("%d",&num[i]);
}
insert_sort(num,5);
for (int i = 0; i < 5; i ++)
{
printf("%d ",num[i]);
}
printf("\n");
}
return 0;
}

热心网友

//问题很多,第一个就是paiux
和函数重名
//还有,就是函数返回只能返回一个数啊
#include<stdio.h>
int
main()
{
int
paixu(int
a,int
b,int
c);
int
a,b,c,pai;
while(scanf("%d
%d
%d",&a,&b,&c)!=-1)
{
pai=paixu(a,b,c);
printf("%d
%d
%d\n",pai);
}
return
0;
}
int
paixu(int
a,int
b,int
c)
{
int
pai;
if(a>b)
{pai=b;
b=a;
a=pai;}
if
(a>c)
{pai=c;
c=a;
a=pai;}
if(b>c)
{
pai=b;b=c;c=pai;
}
printf("%d
%d
%d\n",a,b,c);
return
a;
}

热心网友

for (m=0;m<5;m++)
for(n=0;n>5-m;n++) // 这是什么意思 是不是 n<5-m

另外 恐怕这个也不能正确排序

应改为 :

for (m=0;m<5;m++)
for(n=m;n<5-m;n++)
{
....
}

函数声明 定义 用int sort(int num[]) 即可

热心网友

错的地方很多。。改了下,
#include<stdio.h>
int
sort(int
num[5]);
void
main()
{
int
numm[5],i,a;
for
(i=0;i<5;i++)
scanf("%d",&numm[i]);
sort(numm);
//调用排序
for
(i=0;i<5;i++)
printf("%d
",numm[i]);
}
int
sort(int
num[5])
{
int
m,n,t;
for
(m=0;m<4;m++)
for(n=m+1;n<5;n++)//冒泡排序
{
if
(num[m]<num[n])
{
t=num[n];
num[n]=num[m];
num[m]=t;
}
}
return
1;
}

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