1、 时间结构体(Time)
时间结构体可以用来表示时、分、秒等时间信息,代码如下,
#include <stdio.h> // 定义时间结构体 typedef struct { int year; // 年份 int month; // 月份 int day; // 日期 } Time; // 输出时间结构体 void printTime(Time time) { printf("年份: %d, 月份: %d, 日期: %d\n", time.year, time.month, time.day); } int main() { // 定义时间结构体变量 Time now = {2023, 8, 7}; // 输出时间 printTime(now); return 0; }
2、复数结构体(Complex)
复数结构体可以用来表示复数,包括实部和虚部,代码如下,
#include <stdio.h> // 定义复数结构体 typedef struct { double real; // 实部 double imag; // 虚部 } Complex; // 输出复数结构体 void printComplex(Complex complex) { printf("实部: %.2f, 虚部: %.2f\n", complex.real, complex.imag); } int main() { // 定义复数结构体变量 Complex num = {5.5, 3.7}; // 输出复数 printComplex(num); return 0; }
3、学生结构体(Student)
学生结构体可以用来存储学生的基本信息,如姓名、年龄、成绩等,代码如下,
#include <stdio.h> // 定义学生结构体 typedef struct { char name[50]; // 学生姓名 int age; // 年龄 float score[3]; // 三门课程的成绩 } Student; // 输出学生结构体 void printStudent(Student student) { printf("学生姓名: %s, 年龄 : %d, 三门课程的成绩: %.1f, %.1f, %.1f\n", student.name, student.age, student.score[0], student.score[1], student.score[2]); } int main() { // 定义学生结构体变量 Student stu = {"亮亮", 20, {85, 92, 88}}; // 输出学生 printStudent(stu); return 0; }
4、结构体使用示例
参考上面定义的结构体,赋值修改的使用示例如下,
#include <stdio.h> // 时间结构体定义 struct Time { int hours; int minutes; int seconds; }; // 学生结构体定义 struct Student { char name[50]; int age; float grade; }; // 复数结构体定义 struct Complex { float real; // 实部 float imaginary; // 虚部 }; int main() { // 使用时间结构体 struct Time time1 = {10, 30, 45}; printf("Time: %02d:%02d:%02d\n", time1.hours, time1.minutes, time1.seconds); // 使用学生结构体 struct Student student1 = {"Alice", 20, 85.5}; printf("Student: %s, Age: %d, Grade: %.2f\n", student1.name, student1.age, student1.grade); // 使用复数结构体 struct Complex complex1 = {2.5, -3.7}; printf("Complex number: %.1f + %.1fi\n", complex1.real, complex1.imaginary); // 修改结构体成员的值 time1.hours = 12; student1.grade = 90.0; complex1.real = 1.0; complex1.imaginary = 2.0; // 打印修改后的值 printf("\nModified values:\n"); printf("Time: %02d:%02d:%02d\n", time1.hours, time1.minutes, time1.seconds); printf("Student: %s, Age: %d, Grade: %.2f\n", student1.name, student1.age, student1.grade); printf("Complex number: %.1f + %.1fi\n", complex1.real, complex1.imaginary); return 0; }