利用结构体指针对结构体数组进行打印

/*结构体*/
#include<stdio.h> 
#include<Windows.h>
struct student
{
    char name[10];
    char address[100];
    char phone[20];
    int score[3];
    int num;
    struct student *next; //使用链表操作 
 };
 int main()
 {
     int number;
     int i;
     printf("请输入需要录入总学生人数:");//输入人数 
     scanf("%d",&number);
     struct student stu_01[number];//结构体变量 
     /*通过对stu_01结构体变量进行输入值*/ 
     for(i=0;i<number;i++)
     {
         printf("\n请输入第%d个学生基本信息",i+1);
         printf("\n学生姓名为:");scanf("%s",stu_01[i].name);
         printf("\n学生家庭地址:");scanf("%s",stu_01[i].address);
         printf("\n学生电话号码:");scanf("%s",stu_01[i].phone);
         printf("\n学生数学:");scanf("%d",&stu_01[i].score[0]);
         printf("\n学生英语四级:");scanf("%d",&stu_01[i].score[1]);
         printf("\n学生计算机基础成绩:");scanf("%d",&stu_01[i].score[2]);
         stu_01[i].num=stu_01[i].score[0]+stu_01[i].score[1]+stu_01[i].score[2];
     }
     system("cls"); 
     struct student *pst;//定义结构体指针 
     int len=sizeof(stu_01)/sizeof(struct student);//获取结构体数组存储数据的大小 
     for(pst=stu_01;pst<stu_01+len;pst++)//通过将指针进行循环加一,让它进行 打印识别stu_01数据
     {
         printf("%s学生信息打印如下:\n",pst->name);
         printf("家庭住址:%s\n",pst->address);
         printf("家庭电话:%s\n",pst->phone);
         printf("高数成绩%d\n",pst->score[0]);
         printf("英语四级%d\n",pst->score[1]);
         printf("计算机基础%d\n",pst->score[2]);
         printf("%s总分为:%d\n",pst->name,pst->num); 
         printf("\n");
     }
     return 0;
 }

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要构建结构体数组中的结构体数组元素,你可以按照以下步骤进行: 1. 定义结构体:首先,你需要定义一个结构体,包含你所需的字段和属性。例如,假设你要构建一个学生信息的结构体,可以包含姓名、年龄和成绩等字段。 2. 声明结构体数组:在你的代码中,声明一个结构体数组,并指定数组的大小。例如,你可以声明一个包含10个学生信息的结构体数组。 3. 初始化结构体数组元素:使用循环语句遍历结构体数组,并为每个元素赋值。你可以通过访问结构体的字段来为每个元素赋予相应的值。 下面是一个示例代码,演示了如何构建结构体数组中的结构体数组元素: ```c #include <stdio.h> // 定义学生信息的结构体 struct Student { char name[20]; int age; float score; }; int main() { // 声明包含3个学生信息的结构体数组 struct Student students; // 初始化结构体数组元素 for (int i = 0; i < 3; i++) { printf("请输入第%d个学生的姓名:", i + 1); scanf("%s", students[i].name); printf("请输入第%d个学生的年龄:", i + 1); scanf("%d", &students[i].age); printf("请输入第%d个学生的成绩:", i + 1); scanf("%f", &students[i].score); } // 打印结构体数组元素 for (int i = 0; i < 3; i++) { printf("第%d个学生的姓名:%s\n", i + 1, students[i].name); printf("第%d个学生的年龄:%d\n", i + 1, students[i].age); printf("第%d个学生的成绩:%.2f\n", i + 1, students[i].score); } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值