C37-10.26 结构体
原题链接:38471.note12025-10-26 17:59:54
发布于:江苏
一、结构体的定义
#include<iostream>
using namespace std;
struct stu { //自定义的类型()
string name;
int id;
double chinese, math, english;
};
int main() {
// int a;
// stu a; //stu.自定义的结构体类型
// a.name = "张飞-益达";
// a.id = 1;
// a.chinese = 81;
// a.math = 91;
// a.english = 10;
// stu a = {"张飞",1,91,81,10};
stu a[10] = {
{"张飞",1,91,81,10},
{"关羽",2,100,50,8},
{"刘备",3,120,100,100},
{"牢大",4,60,3,120}
};
for (int i=0; i<4; i++) {
cout << a[i].name << ' ';
cout << a[i].id << ' ';
cout << a[i].chinese << ' ';
cout << a[i].math << ' ';
cout << a[i].english<< endl;
}
return 0;
}
二、结构体的输出
#include<iostream>
using namespace std;
struct node{
string name;
int age;
} a[1005]; //结构体数组
int main() {
for (int i=1; i<=3; i++){
cin>>a[i].name >> a[i].score >> a[i].age;
}
// 输出
for(int i=1; i<=3; i++){
cout<<a[i].name<<" "<<a[i].score <<" " <<a[i].age<<endl;
}
return 0;
}
/*
【思路分析】
1、声明结构体类型,结构体包含姓名、年龄
2、定义结构体变量,输入信息
3、按照输入顺序,依次输出每位同学的信息
结构体】结构体输入输出]
题目描述
给出三个同学的姓名和年龄,你需要将这三位同学的信息按照输入的顺序输出。
提示
输入输出样例:
对于样例,输入三个同学的信息,原样输出即可。
输入格式
三行,每行包含一个字符串和一个整数,表示姓名和年龄。
输出格式
三行,每行包含一个字符串和一个整数,表示姓名和年龄。
样例组
输入#1
小码君 12
小码酱 14
小码王 18
输出#1
小码君 12
小码酱 14
小码王 18
*/
三、结构体数组遍历
#include <iostream>
using namespace std;
struct node{
string name;
double score;
int age;
} a[1005]; //结构体数组
int main() {
int n;
cin >> n;
for (int i=1; i<=n; i++){
cin>>a[i].name >> a[i].score >> a[i].age;
}
// 输出
for(int i=1; i<=n; i++){
cout<<a[i].name<<" ";
printf("%.1lf ", a[i].score);
cout <<a[i].age<<endl;
}
return 0;
}
/*
[【结构体】结构体数组的遍历]
题目描述
小码君的班上有 n(1≤n≤100) 位同学,
每个同学都有三个属性,即姓名、分数、年龄。
你需要按照输入的顺序输出每位同学的信息。
提示
输入输出样例:
输入的 2,表示两位同学,接下来输入两位同学的信息,分别为张三 99.1 12、Bob 88.5 13,再依次输出这两位同学的信息,每个学生的信息中间用一个空格隔开,每个学生占一行。
输入格式
第一行一个整数 n,表示班上的同学数量。
接下来 n 行,每行一个字符串(长度小于 10 )、一个浮点数、一个整数(值小于 200 ),表示姓名、分数、年龄。
输出格式
按照输入的顺序输出每位同学的信息,分数保留一位小数。
样例组
输入#1
输出#1
2
张三 99.1 12
Bob 88.5 13
张三 99.1 12
Bob 88.5 13
*/
四、平均身高
#include <iostream>
using namespace std;
struct node{
string name;
int h;
}a[10005];
double sum;
int main() {
int n;
cin >> n;
for (int i=1; i<=n; i++){
cin>>a[i].name>>a[i].h;
sum += a[i].h;
}
sum /= n; //计算平均分
for(int i=1; i<=n; i++){
if(a[i].h>=sum){
cout<<a[i].name<<" "<<a[i].h<<endl;
}
}
return 0;
}
/*
[【结构体】平均身高]
题目描述
输入 n(0<n≤10000),输入 n 个小孩的姓名和身高(身高是整数,单位是 cm ),
依次输出身高大于平均身高的小孩的姓名和身高。
身高和姓名用一个空格隔开,每个小孩的信息占一行。
输入格式
输入 n(0<n≤10000),
输入 n 个小孩的姓名和身高(身高是整数,单位是 cm )。
输出格式
按照输入顺序,
依次输出身高大于平均身高的小孩的姓名和身高。
身高和姓名用一个空格隔开,每个小孩的信息占一行。
样例组
输入#1
3
小码君 165
小码酱 150
小码王 170
输出#1
小码君 165
小码王 170
提示
3,表示有3个学生,这3 个学生分别为小码君、小码酱、小码王,
身高分别为 165、150、170。可以算出平均身高为 (165+150+170)/3.0=161.67。
小码君的身高为 165,小码王的身高为 170,
大于平均身高,所以依次输出小码君、小码王这两位学生的信息。
*/
这里空空如也








有帮助,赞一个