第十八章 18结构体的赋值

//18结构体的赋值
//结构既然是一种数据类型,那么我们就可以象变量那样进行赋值操作,不过前提是必须两个结构都是同类型
/*#include <iostream>
using namespace std;

struct people
{
    double weight;
	double tall;
};


int main()
{
	people Mick = {111.1, 99.9};
	people Jack = {222.3,55.4};
	cout<<Mick.tall<<" "<<Mick.weight<<endl;
	cout<<Jack.tall<<" "<<Jack.weight<<endl;
	Mick = Jack;
	cout<<Mick.tall<<" "<<Mick.weight<<endl;
	cout<<Jack.tall<<" "<<Jack.weight<<endl;


    return 0;
}
*/

  

转载于:https://www.cnblogs.com/xiangxiaodong/archive/2012/09/24/2700731.html

### 回答1: 结构体数组的赋值可以使用循环语句遍历数组元素,逐一对结构体进行赋值操作。下面是一个简单的示例: ``` #include <stdio.h> struct student { char name[20]; int age; float score; }; int main() { struct student stu[3] = {{"Tom", 18, 90.5}, {"Jerry", 19, 85.5}, {"Lucy", 20, 92.0}}; struct student temp; int i, j; printf("Before sorting:\n"); for (i = 0; i < 3; i++) { printf("%s %d %.1f\n", stu[i].name, stu[i].age, stu[i].score); } // 冒泡排序,按照分数从高到低排序 for (i = 0; i < 2; i++) { for (j = 0; j < 2 - i; j++) { if (stu[j].score < stu[j+1].score) { temp = stu[j]; stu[j] = stu[j+1]; stu[j+1] = temp; } } } printf("After sorting:\n"); for (i = 0; i < 3; i++) { printf("%s %d %.1f\n", stu[i].name, stu[i].age, stu[i].score); } return 0; } ``` 上述代码中,定义了一个结构体类型为 `student`,包含了学生的姓名、年龄和成绩三个字段。然后定义了一个长度为 3 的结构体数组 `stu`,并对其进行初始化赋值。接着使用冒泡排序算法对 `stu` 数组按照成绩从高到低进行排序,并最终输出排好序的结果。 ### 回答2: C语言中的结构体数组赋值可以使用循环遍历的方式进行。首先需要定义一个结构体类型,并声明一个结构体数组变量。 例如,定义一个表示学生信息的结构体类型: ```c struct Student { char name[20]; int age; int score; }; ``` 然后声明一个结构体数组变量: ```c struct Student students[5]; ``` 接下来,可以使用循环遍历的方式为结构体数组变量赋值。可以通过用户输入或者直接给定初始值。 ```c for (int i = 0; i < 5; i++) { printf("请输入第%d个学生的姓名:", i + 1); scanf("%s", students[i].name); printf("请输入第%d个学生的年龄:", i + 1); scanf("%d", &students[i].age); printf("请输入第%d个学生的分数:", i + 1); scanf("%d", &students[i].score); } ``` 以上代码使用循环遍历结构体数组,分别为每个学生输入姓名、年龄和分数,并将输入的值分别赋给对应的结构体数组元素的成员。循环的次数根据结构体数组的大小而定。 通过上述方法,就可以实现 C 语言结构体数组的赋值操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值