标题:班里一个人都不会,谁能救救孩子
只看楼主
kuuhaku
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-10-25
结帖率:33.33%
 问题点数:0 回复次数:4 
班里一个人都不会,谁能救救孩子
1、编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。


2、在上题的基础上,编写一个函数input,用来输入5个学生的数据记录。


3、计算全班学生的总成绩、平均成绩和以及 140 分以下的人数。学生包含信息有:姓名、学号、年龄、所在小组、成绩。成绩和具体信息自行设置
搜索更多相关主题的帖子: 一个人 学生 成绩 函数 记录 
2021-11-30 21:36
kuuhaku
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-10-25
得分:0 
#include<stdio.h>
struct student
{
 char name;
 int num;
 float score[3];
}stu[5];
void print(struct student s[]);
int main()
{
 int i,j;
 for(i=0;i<5;i++){
  printf("请输入第%d名学生的学号,姓名,成绩:",i+1);
  scanf("%d %s",&stu[i].num,stu[i].name);
  for(j=0;j<3;scanf("%f",&stu[i].score[j++]));
 }
 print(stu);
 return 0;
}
void print(struct student s[])
{
 int i,j;
 for(i=0;i<5;printf("\n"),i++){
  printf("%d %-10s",s[i].num,s[i].name);
  for(j=0;j<3;printf("%.2f",s[i].score[j++]));
 }
}
2021-11-30 23:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include<stdio.h>

struct student
{
    unsigned num; // 题目没交代num是什么类型,那我就假设它是一串正整数
    char name[20]; // 题目没交代名字最长是多少,那我就瞎写一个
    float score[3];
};

void input( struct student s[], size_t n );
void print( const struct student s[], size_t n );

int main( void )
{
    struct student s[5];

    const size_t n = sizeof(s)/sizeof(*s);
    printf( "请输入%zu位学生的学号,姓名,成绩:\n", n );
    input( s, n );

    printf( "这%zu位学生的学号,姓名,成绩分别是:\n", n );
    print( s, n );
}

void input( struct student s[], size_t n )
{
    for( size_t i=0; i!=n; ++i )
    {
        scanf( "%u%19s", &s[i].num, s[i].name );
        for( size_t j=0; j!=sizeof(s[i].score)/sizeof(s[i].score[0]); ++j )
            scanf( "%f", &s[i].score[j] );
    }
}

void print( const struct student s[], size_t n )
{
    for( size_t i=0; i!=n; ++i )
    {
        printf( "%u %s", s[i].num, s[i].name );
        for( size_t j=0; j!=sizeof(s[i].score)/sizeof(s[i].score[0]); ++j )
            printf( " %g", s[i].score[j] );
        putchar( '\n' );
    }
}
2021-12-01 09:05
kuuhaku
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-10-25
得分:0 
回复 3楼 rjsp
谢谢
2021-12-01 17:59
白白白小白
Rank: 2
等 级:论坛游民
帖 子:32
专家分:65
注 册:2021-11-8
得分:0 
暂时我只能写出这样的代码.

程序代码:
/*1、编写一个函数print,打印一个学生的成绩数组,
该数组中有5个学生的数据记录,每个记录包括num,name,score[3],
用主函数输入这些记录,用print函数输出这些记录。

2、在上题的基础上,编写一个函数input,用来输入5个学生的数据记录。

3、计算全班学生的总成绩、平均成绩和以及 140 分以下的人数。
学生包含信息有:姓名、学号、年龄、所在小组、成绩。成绩和具体信息自行设置*/

#include<stdio.h>
struct student   //定义结构体 
{
    char name[5];//姓名 
    int age;//年龄 
    int group;//小组 
    int num;//学号 
    float grade1,grade2,grade3;//成绩 
    double average;//平均分 
    double sum;//总分 
};

int main()
{
    struct student stu[5];
    int i,j,cnt=0,grade1=0,grade2=0,grade3=0,age=0,group=0,num=0;
    double average=0,sum=0;
    
    for(i=0;i<5;i++)
    {
        //请输入所有学生的信息,如zhang 1 1 18 60 60 60,输完一个信息后空格直接输入下一个直至输完回车 
        scanf("%s %d %d %d %f %f %f",stu[i].name,&stu[i].num,&stu[i].group,&stu[i].age,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
        for(j=0;j<5;j++)
        {
            
            stu[j].sum=stu[i].grade1+stu[i].grade2+stu[i].grade3;//总分 
            stu[j].average=stu[j].sum/3.0;//平均分 
            if(stu[j].sum<140)
                cnt++;   //低于140分的人数 
            //输出 姓名,学号,小组,年龄,成绩1,成绩2,成绩3,总分,平均分 
            printf("%-6s %2d %2d %2d %6.2f %6.2f %6.2f %6.2f %6.2f \n",stu[i].name,stu[i].num,stu[i].group,stu[i].age,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[j].sum,stu[j].average);break;
        }
    }
    printf("低于140分的人数是%d",cnt); 
    printf("\n");
    
    return 0;    
}
2021-12-02 02:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507712-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.119784 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved