【C++】对于结构体数组,如果没有初始化,那么全部数组内元素会被全部赋成0

#include <stdio.h>
struct{
	char *name;  //姓名
	int num;  //学号
	int age;  //年龄
	char group;  //所在小组
	float score;  //成绩
}Class[8] = {		//可以不给出数组长度,如果给的是空的,全部初始化成0
	{ "Li ping", 5, 18, 'C', 145.0 },
	{ "Zhang ping", 4, 19, 'A', 130.5 },
	{ "He fang", 1, 18, 'A', 148.5 },
	{ "Cheng ling", 2, 17, 'F', 139.0 },
	{ "Wang ming", 3, 17, 'B', 144.5 }
};
int main(){
	int i, num_140 = 0;
	float sum = 0;
	for (i = 0; i<8; i++){
		sum += Class[i].score;
		if (Class[i].score < 140) num_140++;		//判断语句,如果分数小于140  人数就 + 1
	}
	printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", Class[7].score, Class[7].score, Class[7].score);
	printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum / 5, num_140);
	return 0;
}

 

### 初始化C++中的结构体数组C++中,可以通过多种方式来初始化结构体数组。一种常见的方式是使用点表示法逐个员进行初始化。 #### 使用点表示法初始化单个结构体实例 当定义一个简单的结构体并创建该类型的对象时,可以利用构造函数或直接值来进行初始化: ```cpp #include <iostream> using namespace std; struct Point { int x; int y; }; int main() { Point p = {0, 0}; // 利用聚合初始化 cout << "Point coordinates: (" << p.x << ", " << p.y << ")" << endl; return 0; } ``` #### 创建和初始化结构体数组 对于结构体数组而言,在声明的同时也可以对其进行初始化。下面的例子展示了如何通过指定每个元素的具体数值完这一操作[^1]: ```cpp #include <iostream> using namespace std; struct Rectangle { double width; double height; }; int main(){ const size_t SIZE = 3; Rectangle rectangles[SIZE] = {{2.5, 4}, {7.8, 9.6}, {3.1, 5}}; for (size_t i = 0; i<SIZE ;i++){ cout<<"Rectangle "<<i+1<<": Width="<<rectangles[i].width<<", Height="<<rectangles[i].height<<"\n"; } return 0; } ``` 上述代码片段说明了怎样在一个循环体内访问各个`Rectangle`对象,并打印它们各自的属性值。这里需要注意的是,如果希望在运行期间动态改变这些数据,则可以在程序执行过程中随时修改对应的员变量。 另外,还可以采用更灵活的方法——即先声明未初始化结构体数组,之后再单独给每一个结构体分配具体的参数值。这种方式特别适用于那些需要基于某些条件逻辑才能决定具体取值的情况。 ```cpp // 继续上面的例子... for(size_t idx=0;idx<SIZE;++idx){ cin>>rectangles[idx].width>>rectangles[idx].height; } ``` 这段代码允许用户交互式地输入矩形尺寸的信息,从而实现更加个性化的配置过程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值