C语言 用结构体类型数组编程实现输入5个学生的学号姓名平时成绩期中成绩和期末成绩然后输出每位 利用结构体类型变量编一程序,实现输入一学生的学号,期中成绩和...

C\u8bed\u8a00 \u7528\u7ed3\u6784\u4f53\u7c7b\u578b\u6570\u7ec4\u7f16\u7a0b\u5b9e\u73b0\u8f93\u51655\u4e2a\u5b66\u751f\u7684\u5b66\u53f7\u59d3\u540d\u5e73\u65f6\u6210\u7ee9\u671f\u4e2d\u6210\u7ee9\u548c\u671f\u672b\u6210\u7ee9\u7136\u540e\u8f93\u51fa\u6bcf\u4f4d\u540c\u5b66

#include

#include

//C\u8bed\u8a00 \u7528\u7ed3\u6784\u4f53\u7c7b\u578b\u6570\u7ec4\u7f16\u7a0b\u5b9e\u73b0\u8f93\u51655\u4e2a\u5b66\u751f\u7684\u5b66\u53f7\u59d3\u540d\u5e73\u65f6\u6210\u7ee9\u671f\u4e2d\u6210\u7ee9\u548c\u671f\u672b\u6210\u7ee9\u7136\u540e\u8f93\u51fa\u6bcf\u4f4d\u540c\u5b66\u7684\u5b66\u671f\u6210\u7ee9\uff0c\uff08\u5e73\u65f6\u6210\u7ee9\u536010%\u671f\u4e2d\u6210\u7ee9\u536020%\u671f\u672b\u6210\u7ee9\u536070%\uff09

struct Student

{

int id;

char name[20];

double norScore;

double midScore;

double finScore;

}student[5];



struct StudentScore

{

int id;

char name[20];

double Score;

}studentScore[5];





int main(int argc, const char * argv[]) {



int i;

struct Student student[5];

struct StudentScore studentScore[5];



for (i = 0; i < 5; i++) {

scanf("%d %s %lf %lf %lf", &student[i].id, student[i].name, &student[i].norScore, &student[i].midScore,&student[i].finScore);

}



for (i = 0; i < 5; i++) {

studentScore[i].Score = student[i].norScore * 0.1 + student[i].midScore * 0.2 + student[i].finScore * 0.7;

studentScore[i].id = student[i].id;

strcpy(studentScore[i].name, student[i].name);

}



for (i = 0; i < 5; i++) {

printf("num = %d\nname = %s\nscore = %.2lf\n\n", studentScore[i].id, studentScore[i].name, studentScore[i].Score);

}





return 0;

}

#include
struct Student{
int Number; //\u5b66\u53f7
float MidGrade;//\u671f\u4e2d
float FinGrade;//\u671f\u672b
float AveGrade;//\u5e73\u5747
};

#include <stdio.h>
#include <stdlib.h>

#define ARRAY_LEN 100 /*数组长度*/

typedef struct {
    int no; /*学号*/
    char name[ARRAY_LEN]; /*姓名*/
float score1; /*平时成绩*/
float score2; /*期中成绩*/
float score3; /*期末成绩*/
float totalScore; /*学期成绩*/
} student;

/*初始化*/
void initInfo (student stu[], int *stuNum) {
*stuNum = 2; /*学生人数设定*/
}

/*输入学生信息*/
void inputInfo (student stu[], int stuIndex) {
int i;

printf ("第%d名学生↓
", stuIndex+1);

printf ("学号:");
scanf ("%d",&stu[stuIndex].no);
printf ("姓名:");
scanf ("%s",&stu[stuIndex].name);

printf ("平时成绩:");
scanf ("%f",&stu[stuIndex].score1);
printf ("期中成绩:");
scanf ("%f",&stu[stuIndex].score2);
printf ("期末成绩:");
scanf ("%f",&stu[stuIndex].score3);

putchar ('
');
}

/*计算学期成绩*/
void calculationScore (student stu[], int stuIndex) {
float sco1Ratio = 0.1; /*平时成绩比例*/
float sco2Ratio = 0.2; /*期中成绩比例*/
float sco3Ratio = 0.7; /*期末成绩比例*/

stu[stuIndex].totalScore =  stu[stuIndex].score1 * sco1Ratio +
stu[stuIndex].score2 * sco2Ratio +
stu[stuIndex].score3 * sco3Ratio;
}

/*输出学生成绩*/
void printInfo (student stu[], int stuIndex) {
int i;

printf ("%d",stu[stuIndex].no);
printf ("%s",stu[stuIndex].name);

printf ("%.2f",stu[stuIndex].score1);
printf ("%.2f",stu[stuIndex].score2);
printf ("%.2f",stu[stuIndex].score3);
printf ("%.2f",stu[stuIndex].totalScore);

putchar ('
');
}

int main (void) {
int stuNum,i;
student stu[ARRAY_LEN];

initInfo (stu,&stuNum);

/*输入、计算*/
puts ("请输入学生信息:");
putchar ('
');
for (i=0; i<stuNum; i++) {
inputInfo (stu,i);
calculationScore (stu,i);
}
putchar ('
');
printf ("%d名学生成绩输入完毕!", stuNum);
putchar ('
');
puts ("================================================================
");

/*输出*/
puts ("学号姓名平时成绩期中成绩期末成绩学期成绩");
for (i=0; i<stuNum; i++)
printInfo (stu,i);

getch (); /*屏幕暂留*/
return 0;
}

运行结果

以下图示改为2名学生,上方源代码为题主要求的5名学生



#include<stdio.h>

struct Student
{
        int num;
        char name[16];
        float regularGrade;
        float midtermGrade;
        float finalGrade;
        float totalMark;
}; 

int main()
{
        int i;
        struct Student student[5];
        for(i=0;i<5;i++)
        {
                printf("please enter student[%d]`s num:",i+1);
                scanf("%d",&student[i].num);
                printf("please enter student[%d]`s name:",i+1);
                scanf("%s",student[i].name);
                printf("please enter student[%d]`s regularGrade:",i+1);
                scanf("%f",&student[i].regularGrade);
                printf("please enter student[%d]`s midtermGrade:",i+1);
                scanf("%f",&student[i].midtermGrade);
                printf("please enter student[%d]`s finalGrade:",i+1);
                scanf("%f",&student[i].finalGrade);
                student[i].totalMark = student[i].regularGrade*0.1+student[i].midtermGrade*0.2+student[i].finalGrade*0.7;
        }
        for(i=0;i<5;i++)
        {
                printf("student[%d]   num:%d   name:%s   tatalMark:%f
",i+1,student[i].num,student[i].name,student[i].totalMark);
                printf("++++++++++++++++++++++++++++++++++++++++++++++++++++
");
        }
}


#include<stdio.h>

struct Student
{
        int num;
        char name[16];
        float regularGrade;
        float midtermGrade;
        float finalGrade;
        float totalMark;
}; 

int main()
{
        int i;
        struct Student student[5];
        for(i=0;i<5;i++)
        {
                printf("please enter student[%d]`s num:",i+1);
                scanf("%d",&student[i].num);
                printf("please enter student[%d]`s name:",i+1);
                scanf("%s",student[i].name);
                printf("please enter student[%d]`s regularGrade:",i+1);
                scanf("%f",&student[i].regularGrade);
                printf("please enter student[%d]`s midtermGrade:",i+1);
                scanf("%f",&student[i].midtermGrade);
                printf("please enter student[%d]`s finalGrade:",i+1);
                scanf("%f",&student[i].finalGrade);
                student[i].totalMark = student[i].regularGrade*0.1+student[i].midtermGrade*0.2+student[i].finalGrade*0.7;
        }
        for(i=0;i<5;i++)
        {
                printf("student[%d]   num:%d   name:%s   tatalMark:%f
",i+1,student[i].num,student[i].name,student[i].totalMark);
                printf("++++++++++++++++++++++++++++++++++++++++++++++++++++
");
        }
}



#include <stdio.h>

#include <string.h>

//C语言 用结构体类型数组编程实现输入5个学生的学号姓名平时成绩期中成绩和期末成绩然后输出每位同学的学期成绩,(平时成绩占10%期中成绩占20%期末成绩占70%)

struct Student

{

int id;

char name[20];

double norScore;

double midScore;

double finScore;

}student[5];

struct StudentScore

{

int id;

char name[20];

double Score;

}studentScore[5];

int main(int argc, const char * argv[]) {

int i;

struct Student student[5];

struct StudentScore studentScore[5];

for (i = 0; i < 5; i++) {

scanf("%d %s %lf %lf %lf", &student[i].id, student[i].name, &student[i].norScore, &student[i].midScore,&student[i].finScore);

}

for (i = 0; i < 5; i++) {

studentScore[i].Score = student[i].norScore * 0.1 + student[i].midScore * 0.2 + student[i].finScore * 0.7;

studentScore[i].id = student[i].id;

strcpy(studentScore[i].name, student[i].name);

}

for (i = 0; i < 5; i++) {

printf("num = %d\nname = %s\nscore = %.2lf\n\n", studentScore[i].id, studentScore[i].name, studentScore[i].Score);

}

return 0;

}

这就是一个结构体数组的遍历问题,代码如下:

#include <stdio.h>
#define N 5
typedef struct
{
    int sno;
    char name[32]; 
    double daily;
    double middle;
    double final;
}Student;
int main(void)
{
    int i;
    Student stus[N];
    for(i=0; i<N; ++i)
    {
        scanf("%d%s%lf%lf%lf", &stus[i].sno, stus[i].name, 
            &stus[i].daily, &stus[i].middle, &stus[i].final);
        printf("%d,%s,%.2lf
", stus[i].sno, stus[i].name,
            stus[i].daily*0.1+stus[i].middle*0.2+stus[i].final*0.7);
    }
    return 0;
}


扩展阅读:c语言struct结构体数组 ... 结构体数组初始化为空 ... c语言结构体数组传参 ... c语言结构体typedef ... c语言结构体例题 ... c语言返回结构体数组 ... c语言数组全部赋值为0 ... c语言四个基本类型 ... c语言结构体数组简单例子 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网