结构体

D

输入四个人的年龄和姓名,排序后,按年龄,从小到大输出人员年龄及其姓名

 假如输入

30 aaa
23 bbb
15 ccc
32 ddd

应当输出

15 ccc
23 bbb
30 aaa
32 ddd
#include<stdio.h>
struct  person{
    int age;
    char name[10];
};
int main(void)
{
    int i,index,j;
    
    struct person persons[4],temp;
        for(i=0;i<4;i++)
        {
            
            scanf("%d",& persons[i].age);
            printf("");
            scanf("%s",& persons[i].name);
        }
        for(i=0;i<3;i++)
{
    index=i;
    for(j=i+1;j<4;j++)
        if( persons[j].age< persons[index].age)
            index=j;
        temp= persons[index];
         persons[index]= persons[i];
         persons[i]=temp;
}


for(i=0;i<4;i++)
printf("%d %s
", persons[i].age, persons[i].name);

return 0;
}

 A.

题目描述

 

输入10个学生的学号、姓名和成绩,计算并输出平均分,再按照从高分到低分的顺序输出他们的信息。

输入要求

输入10个学生的学号、姓名和成绩。学号和成绩用整数表示,姓名是一个长度不超过19个字符的字符串。

输出要求

输出平均分,再按照从高分到低分的顺序输出10个学生的信息。

假如输入

101 aaa 80
102 bbb 90
103 ccc 70
104 ddd 60
105 eee 80
106 fff 60
107 ggg 78
108 hhh 80
109 iii 68
110 jjj 80

应当输出

The average: 74
The student score:
102 bbb 90
110 jjj 80
101 aaa 80
108 hhh 80
105 eee 80
107 ggg 78
103 ccc 70
109 iii 68
106 fff 60
104 ddd 60
#include<stdio.h>
struct student{
    int num;
    char name[20];
    int score;
};
struct student stud[10];
int main(void)
{
    int i,j,max,sum=0;
    struct student temp;

    for(i=0;i<10;i++){
        scanf("%d",&stud[i].num);
        scanf("%s",&stud[i].name);
        scanf("%d",&stud[i].score);
        sum=sum+stud[i].score ;
    }
    for(i=0;i<9;i++)
    {
        max=i;
        for(j=i+1;j<10;j++)
            if(stud[j].score <stud[max].score)
        max=j;
        temp=stud[max];
        stud[max]=stud[i];
        stud[i]=temp;
    }

    printf("The average: %d
",sum/10);
    printf("The student score:
");
        for(i=9;i>=0;i--)
            printf("%d %s %d
",stud[i].num ,stud[i].name ,stud[i].score );

        return 0;
}

 B.

题目描述

输入某班5位学生的姓名及数学、英语成绩,计算每位学生的平均分;然后输出平均分最高的学生之姓名及数学、英语成绩。

输入要求

输入某班5位学生的姓名及数学、英语成绩。姓名是一个长度不超过19个字符的字符串,成绩用整数表示。

输出要求

输出每名学生的姓名和平均分,平均分用浮点数表示,输出时精确到小数点后1位。

然后输出平均分最高的学生之姓名及数学、英语成绩。

假如输入

aaa 61 88
bbb 63 89
ccc 64 82
ddd 85 66
eee 66 85

应当输出

aaa 74.5
bbb 76.0
ccc 73.0
ddd 75.5
eee 75.5
The max score: bbb 63 89
#include<stdio.h>
struct student{
    char name[20];
    int math;
    int English;
    float average,sum;
    };
int main(void)
{  
    int i,max;
    struct student stud[5];
     
    for(i=0;i<5;i++){
        scanf("%s",&stud[i].name);
        scanf("%d",&stud[i].math);
        scanf("%d",&stud[i].English);
        stud[i].sum=stud[i].math+stud[i].English;
        stud[i].average =stud[i].sum/2;
        }
    for(i=0;i<5;i++)
        printf("%s %.1f
",stud[i].name ,stud[i].average);
    
    max=0;
    for(i=1;i<5;i++){
        if(stud[max].average<stud[i].average)
            max=i;
    }
    
    printf("The max score: %s %d %d
",stud[max].name ,stud[max].math ,stud[max].English );

    return 0;
}

C

题目描述

有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及总分最高分的学生的数据(包括学号、姓名、3门课成绩)

输入要求

学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。

输出要求

各门课的平均成绩 总分最高分的学生的数据(包括学号、姓名、3门课成绩)

假如输入

2
1 blue 90 80 70
2 clan 80 70 60

应当输出

85 75 65
1 blue 90 80 70
#include<stdio.h>
struct student
{
    int num;
    char name[10];
    int x,y,z;
    int sum;
};
struct student stud[10],temp;
int main(void)
{
    int N;
    scanf("%d
",&N);
    int i,j,max;
    int sum1,sum2,sum3;
    int average1,average2,average3;
    sum1=sum2=sum3=0;

    for(i=0;i<N;i++){
    scanf("%d %s %d %d %d",&stud[i].num ,&stud[i].name ,&stud[i].x ,&stud[i].y ,&stud[i].z );
    sum1=sum1+stud[i].x ;
    sum2=sum2+stud[i].y ;
    sum3=sum3+stud[i].z ;
    stud[i].sum=stud[i].x+stud[i].y+stud[i].z;
    }
    average1=sum1/N;
    average2=sum2/N;
    average3=sum3/N;
    printf("%d %d %d
",average1,average2,average3);
    
    
    for(i=0;i<N-1;i++){
        max=i;
        for(j=i+1;j<N;j++)
            if(stud[j].sum<stud[max].sum)
                max=j;
            temp=stud[max];
            stud[max]=stud[i];
            stud[i]=temp;
    }

    printf("%d %s %d %d %d
",stud[i].num,stud[i].name,stud[i].x,stud[i].y,stud[i].z);

    return 0;
}



 
原文地址:https://www.cnblogs.com/simple9495/p/3434950.html