头歌--C++之结构体练习题

本文通过一系列关卡,介绍C++中结构体的应用,涉及复数运算、举重运动员成绩比较、多个成绩排序、书籍信息记录以及结构体元素的排序输出。通过这些实例,深入理解C++结构体的使用方法。
摘要由CSDN通过智能技术生成

第1关:复数类型的结构体变量

任务描述
本关任务:编写一个能描述复数类型的结构体变量的小程序。

编程要求
题目:

定义描述复数类型的结构体变量,编写减法函数sub()与乘法函数mul(),分别完成复数的减法与乘法运算。在主函数中定义四个复数类型变量c1、c2、c3、c4,输入c1、c2的复数值,调用sub()完成c3=c1-c2操作,调用mul()完成c4=c1*c2操作。最后输出c3、c4复数值。

输入格式:输入 c1的实部和虚部,c2的实部和虚部。
输出格式:输出c3和c4。

例:若c1=1+2i, c2=3+4i,则输入
1 2 3 4
得出结论就是
c3 is (-2)+(-2)i
c4 is (-5)+(10)i

效果如下:
输入:1 2 3 4
输出:
c3 is (-2)+(-2)i
c4 is (-5)+(10)i

开始你的任务吧,祝你成功!

#include <iostream>
using namespace std;
struct C
{
    int  a,b;
}c;
C sub(C c1,C c2)
{
    C c3;
    c3.a=c1.a-c2.a;
    c3.b=c1.b-c2.b;
    return c3;
}
C mul(C c1, C c2)
{
    C c4;
    c4.a=c1.a*c2.a-c1.b*c2.b;
    c4.b=c1.b*c2.a+c1.a*c2.b;
    return c4;
}
int main(void)
{
    C c1,c2,c3,c4;
    cin>>c1.a>>c1.b>>c2.a>>c2.b;
    c3=sub(c1,c2);
    c4=mul(c1,c2);
    cout<<"c3 is ("<<c3.a<<")+("<<c3.b<<")i"<<endl;
    cout<<"c4 is ("<<c4.a<<")+("<<c4.b<<")i"<<endl;
}

第2关:比较举重运动员成绩


任务描述
本关任务:编写一个能比较举重运动员成绩的小程序。

相关知识
结构体定义:

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。

声明一个结构体类型的形式是:

struct Student{ //声明一个结构体类型Student
int num; //声明一个整形变量num
char name[20]; //声明一个字符型数组name
char sex; //声明一个字符型变量sex
int age; //声明一个整形变量age
float score; //声明一个单精度型变量
char addr[

C语言中,结构体是一种用户自定义的数据类,可以用来存储不同类的数据。对于结构体练习题,可以通过定义结构体、声明结构体变量、给结构体成员赋值以及使用结构体变量进行操作来实践。 首先,我们需要定义一个结构体,可以根据需要定义多个成员变量,例如一个学生的结构体可以包含学生的姓名、年龄、性别等信息。 ```c struct Student { char name[20]; int age; char gender; }; ``` 然后,我们可以声明一个结构体变量,用来存储具体的数据。 ```c struct Student student1; ``` 给结构体成员赋值的方式有两种,一种是使用点运算符,另一种是使用指针和箭头运算符。下面是使用点运算符的示例: ```c student1.age = 18; strcpy(student1.name, "张三"); student1.gender = 'M'; ``` 使用结构体变量进行操作时,可以直接使用结构体成员或者通过结构体指针来操作。 ```c printf("姓名:%s\n", student1.name); printf("年龄:%d\n", student1.age); printf("性别:%c\n", student1.gender); ``` 除了单个结构体变量外,我们也可以创建结构体数组或者在结构体中嵌套其他数据类,来实现更复杂的功能。 如此,我们就可以通过结构体练习题来熟悉和掌握结构体的使用方法,包括定义结构体、声明结构体变量、给结构体成员赋值以及使用结构体变量进行操作。结构体的使用可以帮助我们更方便地管理一组相关的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值