复兴无基础第十五课 结构体
2025-09-21 19:23:11
发布于:上海
T1结构体输入输出
#include <iostream>
using namespace std;
//1、声明结构体类型,结构体包含姓名、年龄
struct student
{
string name; //姓名
int age; //年龄
};
int main()
{
//2、定义结构体变量,输入信息
student a, b, c;
cin >> a.name >> a.age;
cin >> b.name >> b.age;
cin >> c.name >> c.age;
//3、按照输入顺序,依次输出每位同学的信息
cout << a.name << " " << a.age << '\n';
cout << b.name << " " << b.age << '\n';
cout << c.name << " " << c.age << '\n';
return 0;
}
T2结构体数组的遍历
#include <iostream>
using namespace std;
//1、声明结构体类型,包含三个属性,分别为姓名、分数、年龄 ,再定义结构体数组
struct student
{
string name; //姓名
double score; //分数
int age; //年龄
} a[109];
int main()
{
//2、定义变量,表示人数
int n;
cin >> n;
//3、输入每个学生的信息
for (int i = 0; i < n; i++)
cin >> a[i].name >> a[i].score >> a[i].age;
//4、按照输入顺序,依次输出每个学生的信息,控制分数的输出格式
for (int i = 0; i < n; i++)
{
cout << a[i].name << " ";
printf("%.1f %d\n", a[i].score, a[i].age);
}
return 0;
}
T3【结构体】体重
#include <iostream>
using namespace std;
//1、定义结构体类型,包含姓名和体重两个属性,开结构体数组
struct student
{
string name; //姓名
int weight; //体重
} a[109];
int main()
{
//2、定义变量,输入学生人数
int n;
cin >> n;
//3、输入每个学生的信息
for (int i = 0; i < n; i++)
cin >> a[i].name >> a[i].weight;
//4、输出每个学生的信息
for (int i = 0; i < n; i++)
cout << a[i].name << "->" << a[i].weight << '\n';
return 0;
}
T4【结构体】平均身高
#include <iostream>
using namespace std;
//1、声明结构体类型,包含两个属性:姓名和身高,定义结构体数组
struct student
{
string name;
int height;
} a[10009];
int main()
{
//2、定义变量,输入人数
int n;
cin >> n;
//3、输入学生的信息,统计累加总身高
double ave = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i].name >> a[i].height;
ave += a[i].height;
}
//4、求平均身高,注意浮点数
ave /= n;
//5、判断条件,依次输出
for (int i = 0; i < n; i++)
{
if (a[i].height > ave)
cout << a[i].name << " " << a[i].height << '\n';
}
return 0;
}
T5【结构体】总分
#include <iostream>
using namespace std;
//1、声明结构体类型,包含姓名、语数英三科成绩,定义结构体数组
struct student
{
string name;
int yw, sx, yy;
} a[100009];
int main()
{
//2、定义变量,输入人数
int n;
cin >> n;
//3、输入学生的信息,求出总成绩的最大值
int ma = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i].name >> a[i].yw >> a[i].sx >> a[i].yy;
ma = max(ma, a[i].yw + a[i].sx + a[i].yy);
}
//4、判断,依次输出符合条件的学生的姓名
for (int i = 0; i < n; i++)
{
if (a[i].yw + a[i].sx + a[i].yy == ma)
cout << a[i].name << '\n';
}
return 0;
}
T6【结构体】输出信息
#include <iostream>
using namespace std;
//1、声明结构体类型,包含姓名、性别、身份证号三个属性,定义结构体数组
struct student
{
string name;
int gender;
long long sf;
} a[1009];
int main()
{
//2、定义变量,输入学生的人数
int n;
cin >> n;
//3、输入学生的信息,对于身份证号可以用long long类型存储
for (int i = 0; i < n; i++)
cin >> a[i].name >> a[i].gender >> a[i].sf; //姓名 性别 身份证号
//4、判断条件,依次输出
for (int i = 0; i < n; i++)
{
if (a[i].gender)
{
cout << a[i].name << " " << a[i].sf << '\n';
}
}
return 0;
}
T7【结构体】身高
#include <iostream>
using namespace std;
//1、声明结构体类型,包含姓名和身高两个属性
struct student
{
string name;
int height;
};
int main()
{
//2、定义结构体变量,输入
student a, b, c;
cin >> a.name >> a.height;
cin >> b.name >> b.height;
cin >> c.name >> c.height;
//3、依次输出,注意格式
cout << a.name << " " << a.height << '\n';
cout << b.name << " " << b.height << '\n';
cout << c.name << " " << c.height << '\n';
return 0;
}
T8【结构体】统计信息
#include <iostream>
using namespace std;
//1、声明结构体类型,包含姓名、年龄、学号三个属性, 定义结构体数组
struct student
{
string name;
int age;
int xh;
} a[109];
int main()
{
//2、定义变量,输入学生人数
int n;
cin >> n;
//3、输入每位学生的信息
for (int i = 0; i < n; i++)
cin >> a[i].name >> a[i].age >> a[i].xh; //姓名 年龄 学号
for (int i = 0; i < n; i++)
cout << a[i].name << " " << a[i].age << " " << a[i].xh << "\n";
return 0;
}
T9【结构体】学生信息查询
#include <iostream>
using namespace std;
//1、声明结构体类型,包含姓名、学号、语文成绩、数学成绩四个属性,定义结构体数组
struct student
{
string name;
int xh, yw, sx;
} a[109];
int main()
{
//2、定义变量,输入学生人数和询问次数
int n, m;
cin >> n >> m;
//3、输入学生的信息
for (int i = 0; i < n; i++)
cin >> a[i].name >> a[i].xh >> a[i].yw >> a[i].sx; //姓名 学号 语文成绩 数学成绩
//4、m次询问
while (m--)
{
//4.1、输入一个字符串,判断字符串
string opt;
cin >> opt;
//4.2、询问学生的姓名
if (opt == "name")
{
string x;
cin >> x;
for (int i = 0; i < n; i++)
{
if (a[i].name == x)
{
cout << a[i].yw << " " << a[i].sx << '\n';
break;
}
}
}
else //4.3、询问学生的学号
{
int y;
cin >> y;
for (int i = 0; i < n; i++)
{
if (a[i].xh == y)
{
printf("%.2f\n", (a[i].yw + a[i].sx) / 2.0);
}
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个