美文网首页
结构体数组

结构体数组

作者: 1墨家巨子 | 来源:发表于2019-08-21 18:19 被阅读0次
/*************************************************
   学生结构体
   姓名 成绩
   输入5个学生信息,求平均数
***************************************************/

typedef struct student{
  char name[N];
  int grade;
}students;
void structTest(void){
    int sum=0,avg=0,n=0;
    int i;
    students stu[5]={
        {"zhangsan",21},
        {"lisi",56},
        {"test",55}
    };
    strcpy(stu[0].name,"Tom");//字符串赋值
    for(i=0;i<sizeof(stu)/sizeof(stu[0]);i++){
     scanf("%d %s",&stu[i].grade,&stu[i].name);
     sum=sum+stu[i].grade;
    }
    for(i=0;i<sizeof(stu)/sizeof(stu[0]);i++){
     printf("%d %s\n",stu[i].grade,stu[i].name);
    }
    printf("\n");
    avg=sum/(sizeof(stu)/sizeof(stu[0]));
    printf("avg=%d\n",avg);
    n=sizeof(stu[5].name)/sizeof(char);
    printf("n=%d\n",n);
//    fflush(stdin);
}

/************************************************
***   定义结构体指针                              ***
***   传入学生姓名和成绩                       ***
***   求得学生平均成绩并且输出低于,  ***
***   平均成绩学生的姓名。                    ***
*************************************************/
typedef struct students{
    char name[10];
    float score;
} student;
/***********************************************
 ***  参数:                                             ***
 ***    结构体指针                                    ***
 ***    结构体数组元素个数                      ***
************************************************/
void demo(student *stu,int size){
   int i;
   float sum=0;
   for(i=0;i<size;i++){
       sum+=stu[i].score;
   }
   float avg=sum/size;
   printf("%f\n",avg);
   for(i=0;i<size;i++){
       if(stu[i].score<avg)
   printf("%s\n",stu[i].name);
   }
}

/**************************************************
 *******              动态结构体数组           *******
 **************************************************/
typedef struct student{
    char name[20];
    int sroce;
}my_stu;
void dyn_str_arr(void){
    int n=3;
    printf("输入动态空间大小");
    scanf("%d",&n);
    my_stu *pstu=(my_stu *)malloc(sizeof(my_stu)*n);
    int sum=0;
    int i;
    int avg=0;
    for(i=0;i<n;i++){
        srand((unsigned short int)time(NULL));//获取随机数的种子
        (pstu+i)->sroce=rand()%30+60;//获取60~90随机成绩
        sum+=pstu[i].sroce;//平均成绩求和
        printf("请输入第%d个学生的姓名:\n",i+1);
        scanf("%s",&(*(pstu+i)->name));
    }
    avg=sum/n;
    printf("平均成绩%d\n",avg);
    for(i=0;i<n;i++){
        if(pstu[i].sroce<=avg){
           printf("低于平均成绩的人%s\n",&(*(pstu+i)->name));
        }
    }
    free(pstu);
    pstu=NULL;
}

相关文章

  • 结构体数组的定义

    结构体数组的定义 1、先定义结构体类型,再定义结构体数组 2、定义结构体类型的同时定义结构体数组 3、省略结构体类...

  • golang入门到放弃:4.结构体

    定义 eg: 结构体数组 结构体数组 定义 结构体数组名 [元素个数]结构体类型 eg//var arr [5]P...

  • C语言 13 结构体数组

    C语言 13 结构体数组 结构体数组的定义 结构体数组初始化 结构体成员的使用 格式 : 字符串成员的处理 结构体...

  • c语言结构体类型的多维数组的读取

    定义一个结构体 定义一个结构体数组 为结构体数组赋值 定义一个函数为结构体数组中的数组赋值

  • 结构体与数组的关系

    结构体与数组的关系 结构体是数组的成员 一个数组的全部元素是结构体变量

  • c++day11

    结构体 数组只能存一种类型, 结构体可以存不同类型 结构体数组 结构体数组作为函数的参数 共同体/联合体 占用字节...

  • ndk-基础知识

    数组和指针,数组指针,指针数组 结构体 内存对齐 内存对齐 结构体大小 S5DUD10BN083MHEJEX7TP...

  • 结构体数组例题3

    结构体数组例题3

  • 数组字典结构体枚举

    数组 字典 结构体 枚举

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

网友评论

      本文标题:结构体数组

      本文链接:https://www.haomeiwen.com/subject/elwisctx.html