您当前的位置:首页 > 互联网教程

c语言编程:建立一个结构体数组

发布时间:2025-05-12 12:23:47    发布人:远客网络

c语言编程:建立一个结构体数组

一、c语言编程:建立一个结构体数组

一、要定义两个结构体,一个是日期年月日,一个是员工。

二、程序包含三个功能:1、结构数组的输入。2、结构数组的输出。3、统计平均工资。根据编程习惯,三功能要写成独立函数,方便扩展和调用。

ps:员工数量定义成常量,也为编程习惯,便于修改。另外,日期验证我只写了月份检测给你参考。需扩展,自行编写函数验证。

void inputInfo(EME emes[]);//输入

void outputInfo(EME emes[]);//输出

float getAvg(EME emes[]);//求平均工资

printf("平均工资:%f",getAvg(emes));

printf("请输入员工%d的信息:\n",i+1);

printf("工号:"),scanf("%d",&emes[i].id);

printf("姓名:"),scanf("%s",emes[i].name);

printf("日期(分别输入年月日,空格分割):"),scanf("%d%d%d",&emes[i].date.year,&emes[i].date.month,&emes[i].date.day);

if(emes[i].date.month>12|| emes[i].date.month<=0)//日期输入的验证不通过时,重新输入,验证可单独写函数,这里只做参考!

printf("输入日期不符合,请重新输入!\n\n"),i--;

printf("工资:"),scanf("%d",&emes[i].wage);

printf("所有员工的信息为:----------------------------\n");

for(i=0,printf("员工%d的信息:\n",i+1);i<M;i++)

printf("工号:%d\n",emes[i].id);

printf("姓名:%s\n",emes[i].name);

printf("日期:%04d-%02d-%02d\n",emes[i].date.year,emes[i].date.month,emes[i].date.day);

printf("工资:%d\n",emes[i].wage);

二、c语言数组的定义

C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。

在C语言中使用数组必须先进行定义,一维数组的定义方式为:类型说明符;数组名;[常量表达式]。

其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符,方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例如:

int a[10];/*说明整型数组a,有10个元素*/

float b[10], c[20];/*说明实型数组b,有10个元素,实型数组c,有20个元素*/

char ch[20];/*说明字符数组ch,有20个元素*/

对于数组类型说明应注意以下几点:

1、数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。

2、数组名的书写规则应符合标识符的书写规定。

3、数组名不能与其它变量名相同。例如:

4、方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0], a[1], a[2], a[3], a[4]。

5、不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:

是合法的。但是下述说明方式是错误的。

6、允许在同一个类型说明中,说明多个数组和多个变量。例如:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1]目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

三、C语言中如何定义数组

1、C语言中,同变量一样;数组也必须先定义后使用。

2、类型标识符数组名[常量表达式];例如int a[10];其中a为地址常量。

3、如变量的定义一样,int a;double a;float a等;数组的定义只是把后面的变量名改为数组名而已。

4、int a[10]就是定义了一个数组名为a的数组;此数组有10个元素。其中各元素从a[0]到a[9];并没有a[10]元素。下面列举一个。

5、常量表达式可以包括字面常量和符号常量;但不能包含变量。例如对下面定义是错误的

6、其中对二维及多位数组定义可以类推

7、int a[x][y][z][...]其中 x,y,z为数字。