编程第二题求c语言大佬

2026年09月19日 01:04
有3个网友回答
网友(1):

附加题帮你实现了,告辞。

#include 
#include 
#include 
 
typedef struct student
{
    char name[12];
    unsigned short C_language;
    unsigned short rank;
}student_t;
 
unsigned short num;
unsigned int average;
 
void enter_message(student_t *p);
void sort(student_t *p);
void print_message(student_t *p);
void swit_student(student_t *p,student_t *q);
void search_student(student_t *p);
 
int main(int argc, char const *argv[])
{
    printf("Enter the number of students:");
    scanf("%hu",&num);
 
    student_t *p = NULL;
    p = (student_t *)malloc(num * sizeof(student_t));
 
    printf("Enter students message,example: name C_language\n");
    enter_message(p);
    sort(p);
    print_message(p);
 
    search_student(p);
 
    free(p);
    return 0;
}
 
void enter_message(student_t *p)
{
    unsigned short i = 0;
    student_t *temp = p;
    while(i < num)
    {
        printf("Enter the %hu message:\n", i + 1);
        scanf("%s %hu",temp->name,&temp->C_language);
        average += temp->C_language;
        temp += 1;
        i++;
    }
}
 
void sort(student_t *p)
{
    student_t *temp;
 
    for (int i = 0; i < num; ++i)
    {
        for (int j = i+1; j < num; ++j)
            if(p[i].C_language < p[j].C_language)
                swit_student(&p[i],&p[j]);
        p[i].rank = i+1;
    }
 
    temp = p;
    printf("The bast student is:name:%s C_language:%hu\n"
         ,temp->name,temp->C_language);
    temp += num -1;
    printf("The worst student is:name:%s C_language:%hu\n"
         ,temp->name,temp->C_language);
    printf("The C_language average:%0.2f\n", (average*1.0)/num);
}

void print_message(student_t *p)
{
    unsigned short i = 0;
    student_t *temp = p;
    while(i < num)
    {
        printf("The  student is:name:%s C_language:%hu\n"
                            ,temp->name,temp->C_language);
        temp += 1;
        i++;
    }
}
 
void swit_student(student_t *p,student_t *q)
{
    student_t temp;
    strcpy(temp.name,p->name);
    strcpy(p->name,q->name);
    strcpy(q->name,temp.name);
 
    temp.C_language = p->C_language;
    p->C_language = q->C_language;
    q->C_language = temp.C_language;
}

void search_student(student_t *p)
{
    char student_name[12] = {0};
    printf("Pls enter the student name\n");
    scanf("%s",student_name);
 
    for (int i = 0; i < num; ++i)
    {
        if(!strcmp(p[i].name,student_name))
            printf("The student is:name:%s C_language:%hu Ranking:%hu\n"
                ,p[i].name,p[i].C_language,p[i].rank);
    }
}

网友(2):

#include
int main()
{ int i,x,max=-1,min=9999,s=0;
  for(i=0;i<5;i++)
  {scanf("%d",&x);
   if(x>max)max=x;
   if(x   s+=x;
  }
  printf("最高%d\n最低分=%d\n平均分=%.1f\n",max,min,s/5.0);
  return 0;
}

网友(3):

#include 
int main()
{
int i;
float a[5],min,max,avg; //max表示最高分,min表示最低分,avg表示平均分
printf("请输入5位学生的分数\n");
printf("********************************\n");
for(i=0;i<5;i++)
{
printf("请输入一位学生的分数:");
scanf("%f",&a[i]);
}
max=min=avg=a[0];
for(i=1;i<5;i++)
{
if(min>a[i])
{min=a[i];}
if(max {max=a[i];}
avg=avg+a[i];
}
avg=avg/5;
printf("max=%f\n",max);
printf("min=%f\n",min);
printf("max=%f\n",avg);
printf("********************************\n");
}

希望可以帮到你。