结构体实验


编写一个程序,用于创建一个结构体book,用来存储书的信息:书名、作者姓名、页数和价格。接收用户输入的值并显示这些值

#include<stdio.h>

struct book1
{
    char name[20];
    char autor[20];
    int page;
    float price;
}book;
int main()
{
   scanf("%s",book.name);
   scanf("%s",book.autor);
   scanf("%d",&book.page);
   scanf("%f",&book.price);
   printf("书名是%s",book.name);
   printf("作者是%s",book.autor);
   printf("书有%d页",book.page);
   printf("价格是%6.2f",book.price);
    return 0;

}





定义一个结构体,用来保存学生的信息,包括:学号、姓名、数学课程成绩、语文课程成绩、C课程成绩。编写一个程序,用来接收3位学生的信息,计算每位学生的平均成绩并显示详细信息。

#include<stdio.h>
struct student
{
int num;
char name[20];
float math;
float Chinese;
float Cyuyan;
 } student1,student2,student3;
 
 int main()
 {
  printf("请输入三个学生的个人信息:\n");
  scanf("%d%s%f%f%f",&student1.num,student1.name,&student1.math,&student1.Chinese,&student1.Cyuyan);
  scanf("%d%s%f%f%f",&student2.num,student2.name,&student2.math,&student2.Chinese,&student2.Cyuyan);
  scanf("%d%s%f%f%f",&student3.num,student3.name,&student3.math,&student3.Chinese,&student3.Cyuyan);
  float avre1,avre2,avre3;
  avre1=(student1.math+student1.Chinese+student1.Cyuyan)/3;
avre2=(student2.math+student2.Chinese+student2.Cyuyan)/3;
avre3=(student3.math+student3.Chinese+student3.Cyuyan)/3;
printf("学号%d 姓名%s 数学%f 语文%6.2f c语言%6.2f 平均分%6.2f\n",student1.num,student1.name,student1.math,student1.Chinese,student1.Cyuyan,avre1);
printf("学号%d 姓名%s 数学%f 语文%6.2f c语言%6.2f 平均分%6.2f\n",student2.num,student2.name,student2.math,student2.Chinese,student2.Cyuyan,avre2);
printf("学号%d 姓名%s 数学%f 语文%6.2f c语言%6.2f 平均分%6.2f\n",student3.num,student3.name,student3.math,student3.Chinese,student3.Cyuyan,avre3);
return 0;
  }

### PTA结构体实验报告示例及相关资料 #### 关于PTA结构体实验的内容概述 在PTA平台上的结构体实验通常涉及定义操作结构体,以完成特定的任务。例如,引用了一个学生结构体定义 `struct Student { int sid; int C; int English; }`[^1],这表明可以通过该结构体存储学生的学号及其两门课程的成绩。 对于日期结构体的应用,有提到过定义一个包含年、月、日的结构体变量,并输入其成员数据[^3]。这类题目旨在帮助学习者掌握如何声明结构体并对其进行初始化与访问。 另外,在处理多个对象时,可以利用数组形式来管理一组具有相同属性的对象。比如,为了找出三个学生中成绩最高的一位,需先读取每位学生的详细信息到各自的结构实例里,再逐一比较他们的分数[^4]。 还有关于寻找最大值或最小值的例子,其中介绍了通过设定初始参照值(如第一个元素的最大/最小假设),随后遍历整个列表来进行对比判定的方法[^5]。 以下是基于上述内容整理的一个综合性的实验报告模板: --- #### **实验目的** 熟悉C语言中的结构体概念,学会创建自定义类型的结构体;能够运用结构体解决实际问题,如记录个人信息、图书库存情况等复杂数据集合。 #### **实验环境** - 开发工具:Dev-C++ / Code::Blocks (或其他支持标准C/C++编译器) - 编程语言版本:ISO C90 或更高 #### **核心知识点** 1. 定义简单结构体; 2. 初始化结构体成员; 3. 使用指针指向结构体地址; 4. 数组配合结构体批量处理同类事物; 5. 排序算法应用于结构体内嵌数值字段上。 #### **代码实现** ##### 输入三名学生的具体信息并打印得分最高的那位同学详情: ```c #include <stdio.h> #define NUM_STUDENTS 3 // 学生结构体定义部分 struct Student { char name[20]; int id; float mathScore, englishScore; }; int main() { struct Student students[NUM_STUDENTS]; printf("请输入%d个学生的姓名、ID以及数学英语两科成绩:\n", NUM_STUDENTS); // 循环录入每条记录 for(int i = 0;i<NUM_STUDENTS;i++) { scanf("%s %d %f %f",students[i].name,&(students[i].id),&(students[i].mathScore),&(students[i].englishScore)); } // 寻找总分最高的学生 int topIndex = 0; double highestTotal = students[topIndex].mathScore + students[topIndex].englishScore; for(int j=1;j<NUM_STUDENTS;j++){ double currentTotal = students[j].mathScore + students[j].englishScore; if(currentTotal > highestTotal){ highestTotal=currentTotal; topIndex=j; } } // 输出结果 printf("\n成绩最好的学生是:%s\n",students[topIndex].name); printf("他的ID为:%d\n",students[topIndex].id); printf("他获得的总分为:%.2lf\n",(double)(students[topIndex].mathScore+students[topIndex].englishScore)); return 0; } ``` 此段程序实现了从键盘接收三位学员的基础档案之后,计算谁的整体表现最优,并最终展示出来。 #### 总结反思 本节练习加深了我们对结构体的理解程度,同时也锻炼了解决多维度数据分析的能力。未来还可以尝试更多复杂的场景模拟,像图书馆管理系统之类的项目实践,进一步巩固所学到的知识点。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值