c语言 结构体数组的赋值

c语言 结构体数组的赋值

//**创建结构体**
#include<stdio.h>
struct Class{
     int id;
     char name[10];
};
//******结构体数组的赋值
int main(){
     int m;   //定义结构体数组的长度所需变量
     int i;   
     printf("list size is :  ");          //定义结构体数组的长度
    scanf("%d",&m);
    struct Class class_1[m];    //定义结构体数组变量class_1,变量类型为结构体struct Class
     struct Class *p;         //定义结构体指针
     p=&class_1[0];         //结构体指针指向结构体数组的第一个数组class_1[0];
     //************* 
    for(i=0;i<m;i++){            //此循环是对结构体数组class_1每一个的成员的赋值
        printf("plz enter his ID : ");
        scanf("%d",&p[i].id);
        printf("plz enter his name : ");
        scanf("%s",&p[i].name);
        p=&p[i];
        printf("Sceesslly insert! his id is : %d and his name is %s\n",(*p).id,(*p).name);
        
    }
    }

以上是结构体数组的赋值,由于本人能力有限,若有不足,望各位指正。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答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 语言结构体数组赋值操作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值