C语言,考题帮帮我

1.在函数中进行10个学生成绩从高到低排名sort(inta[10])2.改进第一步的函数为sort(inta[],intn),进行n个学生成绩从高到低排名,3.改进第二... 1. 在函数中进行10个学生成绩从高到低排名 sort(int a[10])
2. 改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,
3. 改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。
(a:ascending 升,d:descending 降)
具体写下程序源码
展开
 我来答
泡泡浴缸儿
2009-07-06 · 超过17用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:50.3万
展开全部
/*
1. 在函数中进行10个学生成绩从高到低排名 sort(int a[10])
2. 改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,
3. 改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。
(a:ascending 升,d:descending 降) */

#include <stdio.h>

void sort1(int a1[10]);
void sort2(int a2[],int n);
void sort3(int a[],int n, char style);

main()
{
int p[10];//步骤1中用于存放10个成绩
int q[100];//步骤2中用于存放成绩
int r[100];//步骤3中用于存放成绩
int i;//循环用
int n;//步骤2中学生成绩的个数
int m;//步骤3中学生成绩的个数
char style;//步骤3中的排列方式

printf("下面是步骤1的演示结果\n");
printf("***********************************\n");
printf("请输入十个学生的成绩:\n");
for(i=0;i<10;i++)
{
scanf("%d",&p[i]);
}

sort1(p);

printf("下面是十个学生成绩的从高到低排名:\n");

for(i=0;i<10;i++)
{
printf("%d ",p[i]);
}

printf("\n\n\n\n\n\n");

printf("下面是步骤2的演示结果\n");
printf("***********************************\n");

printf("请输入学生个数:\n");
scanf("%d",&n);
printf("请为这%d名同学录入成绩:\n",n);
for (i=0;i<n;i++)
{
scanf("%d",&q[i]);
}

sort2(q,n);

printf("该组学生成绩的排序如下:\n");

for(i=0;i<n;i++)
{
printf("%d ",q[i]);
}

printf("\n\n\n\n\n\n");

printf("下面是步骤3的演示结果\n");
printf("***********************************\n");

printf("请输入学生个数:\n");
scanf("%d",&m);
printf("请为这%d名同学录入成绩:\n",m);
for (i=0;i<m;i++)
{
scanf("%d",&r[i]);
}
printf("请选择要升序还是降序(升序请输入a,降序请输入b)\n");
scanf("%s",&style);

sort3(r,m,style);

printf("该组学生成绩的排序如下:\n");

for(i=0;i<m;i++)
{
printf("%d ",r[i]);
}

printf("\n");

}

void sort1(int a1[10])//步骤1
{
int i,j;
int t;
for(i=0;i<10;i++)
for (j=0;j<10-i-1;j++)
{
if(a1[j]<a1[j+1])
{
t=a1[j];
a1[j]=a1[j+1];
a1[j+1]=t;
}
}

}

void sort2(int a2[],int n)//步骤2
{
int i,j;
int t;
for(i=0;i<n;i++)
for (j=0;j<n-i-1;j++)
{
if(a2[j]<a2[j+1])
{
t=a2[j];
a2[j]=a2[j+1];
a2[j+1]=t;
}
}
}

void sort3(int a3[],int n, char style)//步骤3
{
int i,j;
int t;

if(style == 'a')//升序算法
{
for(i=0;i<n;i++)
for (j=0;j<n-i-1;j++)
{
if(a3[j]>a3[j+1])
{
t=a3[j];
a3[j]=a3[j+1];
a3[j+1]=t;
}
}
}

if(style =='b')//降序算法
{
for(i=0;i<n;i++)
for (j=0;j<n-i-1;j++)
{
if(a3[j]<a3[j+1])
{
t=a3[j];
a3[j]=a3[j+1];
a3[j+1]=t;
}
}
}

}

以上方法你复制粘贴就行了~
希望对你有帮助~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式