C语言里数组元素是什么

Python014

C语言里数组元素是什么,第1张

元素组成了数组,数组的定义为 ,

int a[10]

其中 int 为类型,即整型(还有字符型 char 和float 实型等)

a 为数组名 [] 为下标符号,里面的数字常量为 数组的第几号成员元素。

例如 a[0]为 数组a[10]的第一号成员元素。

这里有点要注意的是,数组元素下标值是从0开始的,即你定义a[10],

则他的成员数为a[0]到a[9].千万不要把a[10]也当成了他的成员了。

至于元素,例如你定义一个变量 int a

那么 你可以让 a 成为数组 a[10]的一个元素。如果你要用到很多变量的话,

总不能定义N个变量吧! 这个时候你就可以用数组了来表示哪些个变量了!

但是定义数组的时候一定要定义他的下标值,即a[10]中[]内必须为一个常量。

#include "stdio.h"

#include "stdlib.h"

typedef struct stutttt 

{ /*定义结构体*/

    char name[50]

    char num[50]

    double score

}stu

stu student,s[1000]

int n

double max

double average

char fileI[20] = "stuin.txt"

char fileO[20] = "stuout.txt"

int cmp( const void * a, const void * b )

{

    if(((stu*)a)->score < ((stu*)b)->score) return 1

    else return -1

}

void Sort()

{

    qsort(s,n,sizeof(stu),cmp)

}    

void Pnt()

{

    int i

    for(i=0i<ni++)

    {

        printf("%s %s %.0lf\n",s[i].num,s[i].name,s[i].score)

    }

    printf("\n")

void Read()

{

    n = 0

    FILE *fp

    if((fp=fopen(fileI,"r"))==NULL)

    { /*以只读打开文件*/

        printf("cannot open file")

        getchar()

        exit(0)

    }

    while( fscanf(fp,"%s%s%lf\n",s[n].num,s[n].name,&s[n].score)!=EOF /* 从文件读*/ )

    {

        n++

    }    

    fclose(fp)

void Solve()

{

    int i

    int h=0,e=0,l=0

    int m90_100 = 0,m80_89 = 0, m70_79 = 0,m60_69=0,m0_59=0

    char sss[81] = ""/*"--------------------------------------------------------------------------------"*/

    FILE * fp

    if((fp=fopen(fileO,"w"))==NULL)

    { /*以只读打开文件*/

        printf("cannot open file")

        getchar()

        exit(0)

    }

    average = 0

    max = 0

    for(i=0i<ni++)

    {

        if( s[i].score > max ) max = s[i].score

        average += s[i].score

    }

    average /= n

    puts("最高分的人:")

    fputs("最高分的人:\n",fp)

    for(i=0i<ni++)

    {

        if( s[i].score < average ) l++

        else if( s[i].score > average ) h++

        else e++

        

        if( s[i].score>=90 )      m90_100++

        else if( s[i].score>=80 ) m80_89 ++

        else if( s[i].score>=70 ) m70_79 ++

        else if( s[i].score>=60 ) m60_69 ++

        else                      m0_59  ++

        

        if( s[i].score < max ) continue

        printf("%s %s %.0lf\n",s[i].num,s[i].name,s[i].score)  

        fprintf(fp,"%s %s %.0lf\n",s[i].num,s[i].name,s[i].score)  

    }    

    printf("\n")

    fprintf(fp,"\n")

    printf("平均成绩:%lf\n",average)

    printf("高于平均 %d 人\n",h)

    printf("等于平均 %d 人\n",e)

    printf("低于平均 %d 人\n",l)

    fprintf(fp,"平均成绩:%lf\n",average)

    fprintf(fp,"高于平均 %d 人\n",h)

    fprintf(fp,"等于平均 %d 人\n",e)

    fprintf(fp,"低于平均 %d 人\n",l)

    puts("")

    fputs("",fp)

    printf("优秀(90~100) %d 人数百分比;%%%lf\n",m90_100,100.0*m90_100/n)

    printf("优秀(80~89 ) %d 人数, 百分比;%%%lf\n",m80_89 ,100.0*m80_89 /n)

    printf("优秀(70~79 ) %d 人数, 百分比;%%%lf\n",m70_79 ,100.0*m70_79 /n)

    printf("优秀(60~69 ) %d 人数, 百分比;%%%lf\n",m60_69 ,100.0*m60_69 /n)

    printf("优秀(00~50 ) %d 人数, 百分比;%%%lf\n",m0_59  ,100.0*m0_59  /n)

    fprintf(fp,"优秀(90~100) %d 人数, 百分比;%%%lf\n",m90_100,100.0*m90_100/n)

    fprintf(fp,"优秀(80~89 ) %d 人数, 百分比;%%%lf\n",m80_89 ,100.0*m80_89 /n)

    fprintf(fp,"优秀(70~79 ) %d 人数, 百分比;%%%lf\n",m70_79 ,100.0*m70_79 /n)

    fprintf(fp,"优秀(60~69 ) %d 人数, 百分比;%%%lf\n",m60_69 ,100.0*m60_69 /n)

    fprintf(fp,"优秀(00~50 ) %d 人数, 百分比;%%%lf\n",m0_59  ,100.0*m0_59  /n)

    fclose(fp)

    printf("\n结果已经写入文件%s\n",fileO)

}    

    

main( )

{

    int i

    Read()

    Solve()

/*   printf("来自文件的数据:\n")*/

/*   Pnt()*/

/*   Sort()*/

/*   printf("按分数降序排序后的数据:\n")*/

/*   Pnt()*/

    getchar()

}