【六六互联】长期出售【美国抗投诉服务器】【欧洲抗投诉服务器】【亚洲抗投诉服务器】

数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。 

结构体数组:数组的元素也可以是结构类型的

【案例描述】

下面代码的作用是:输入N人的学号、姓名和成绩,按成绩升序输出。请改正其中的错误。

#include<stdio.h>;

#define N 10;

typedef struct{int sid,score;char name[10]}STUD;

main()

{ stud st[N],p;

  int i,j;

  for(i=0;i<N;i++)

     scanf("%d%s%d",st[i].sid,st[i].name,st[i].score);

  for(i=0;i<N-1;i++)

     for(j=i+1;j<N;j++)

    if(st[i].score>st[j].score)

{  p=st[i];st[i]=st[j];st[j]=p;}

  for(i=0;i<N;i++)

     printf("%2d:%d,%s,%d\n",i+1,st[i].sid,st[i].name,st[i].score);

结构体数组:数组的元素也可以是结构类型的

【案例分析】

1、预处理命令不是语句,不能以分号结尾

2、C语言区分大小的

3、scanf函数中,必须给定变量的地址

【参考代码】

#include<stdio.h>

#define N 4

typedef struct{int sid,score;char name[10];}STUD;

main()

{ STUD st[N],p;

  int i,j;

  for(i=0;i<N;i++)

     scanf("%d%s%d",&st[i].sid,st[i].name,&st[i].score);

  for(i=0;i<N-1;i++)

     for(j=i+1;j<N;j++)

    if(st[i].score>st[j].score)

{  p=st[i];st[i]=st[j];st[j]=p;}

  for(i=0;i<N;i++)

     printf("%2d:%d,%s,%d\n",i+1,st[i].sid,st[i].name,st[i].score);