c语言如何输入n个学生的姓名

发布网友 发布时间:2022-03-01 07:40

我来回答

5个回答

热心网友 时间:2022-03-01 09:09

源程序如下:

#include<stdio.h>

#include<string.h>

#define SIZE 5

int score[SIZE];char name[SIZE][20];int i,j;

void order(int a[SIZE],char name[SIZE][20]);

void main(void)

{

 int max,min,x;

 for(i=0;i<SIZE;i++)

  {

   printf("Please input name and score:");

   scanf("%s%d",&name[i],&score[i]);

  }

 order(score,name);

 for(i=SIZE-1;i>=0;i--)

  {

   printf("%-20s%d\n",name[i],score[i]);

  }

}

void order(int a[SIZE],char name[SIZE][20])

{

 int m=SIZE-1,n;char temp[20];

 while(m>0)

 {

  for(j=0;j<m;j++)

   {

    if(a[j]>a[j+1])

     {

      n=a[j];a[j]=a[j+1];a[j+1]=n;

      strcpy(temp,name[j]);

      strcpy(name[j],name[j+1]);

      strcpy(name[j+1],temp);

     }

   }

  m--;

 }

}

热心网友 时间:2022-03-01 10:27

定义一个学生类,比较学生成绩,然后在交换值的时候整体交换。

热心网友 时间:2022-03-01 12:02

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int i,j,N,temp;
scanf("%d",&N);
char name[N][15],a[15]={'\0'},b;
int score[N];
for(i=0;i<N;i++){
printf("name:");
b=getchar();
gets(name[i]);
printf("score:");
scanf("%d",&score[i]);
}
for(i=0;i<N-1;i++){
for(j=0;j<N-1;j++){
if(score[j]<score[j+1]){
temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
strcpy(a,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],a);
}
}
}
for(i=0;i<N;i++){
printf("name:%-15ssocre:%4d\n",name[i],score[i]);
}
return 0;
}

热心网友 时间:2022-03-01 13:53

I don't know

热心网友 时间:2022-03-01 16:01

不会

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