c语言问题~求教高手

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:14:04
函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。
(a:ascending 升,d:descending 降)

我写的程序不是道问什麽运行不了?希望高手指教
#include<stdio.h>
void main()
{
void sort(int a[],int n,char style);
int a[10000],i,n;char style;
printf("请输入学生人数和排序类型\n");
scanf("%d\n",&n);
scanf("%c\n",&style);
for(i=0;i<n;i++);
scanf("%d",a[i]);
sort(a,n,style);
printf("请输出的学生成绩\n");
for(i=0;i<n;i++);
printf("%5d",a[i]);
printf("\n");
}

void sort(int a[],int n,char style)
{
int i,j,k,t;
if(style=='a')
{
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])
k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
else if(style=='b')
{

#include<stdio.h>
void main()
{
void sort(int a[],int n,char style);
int a[10000],i,n;
char style;
printf("请输入学生人数和排序类型\n");
scanf("%d",&n); //这里把“\n”去掉
scanf("%c",&style);//这里把“\n”去掉
for(i=0;i<n;i++)//去掉“;”

scanf("%d",&a[i]); //输入用“&”

sort(a,n,style);
printf("请输出的学生成绩\n");
for(i=0;i<n;i++)//去掉“;”
printf("%5d",a[i]);
printf("\n");
}

void sort(int a[],int n,char style)
{
int i,j,k,t=0;
if(style=='a')
{
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])
k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
else if(style=='d')//这里应该是“d”吧
{
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[j]>a[k])
k=j;
t=a[