实验9结构体-创新互联

实验9 结构体

一、实验目的

创新互联主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务东辽,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
  1. 掌握结构体定义、结构体变量的定义及使用方法。
  2. 掌握结构体类型数组的定义、初始化、元素的赋值和使用。
  3. 掌握结构体类型变量和共用体类型变量的区别。
  4. 了解单链表的建立、访问、插入和删除操作。

二、实验内容

1.验证性实验

设有3名职工的编号、姓名和工资存放在结构体数组中,下面程序输出3人中工资居中者的编号、姓名和工资。请填空并调试程序。

#includestruct  worker

{   int num ;

    char name[20] ;

    float salary ;

} workers[ ] ={1, “zhang tian”, 2000, 2, “li ming”, 2400, 3, “wu yu”, 2200} ;

void main()

{  

int  i , j ;

float max , min;

    max = min = workers[ 0 ] . salary ;

    for ( i = 1; i< 3; i++ )

if ( workers[ i ]. salary >max )

max = workers[ i ]. salary  ;

    else if ( workers[ i ].salary< min )

    min = workers[ i ].salary   

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

if ( workers[ i ].salary != max  &&   workers[ i ].salary != min)

printf(“%d %c %f\n”,workers[i].num,workers[i].sex, workers[ i ].salary ) ;

}

2.改错性实验

修改编译时发生的语法错误。按照程序中的要求设置断点调试,使得程序的功能是输入n个职工的编号、工资,计算其平均工资并输出。

#include

struct  worker

{   int num ;

float salary ;

} workers[10 ];

void input( struct worker * p, int n )

{

int  i ;

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

{

printf(“ 请输入第%d 个职工编号:\n ”, i + 1);

scanf(“%d”, ( *p ).num );

printf(“ 请输入第%d 个职工工资:\n ”, i + 1);

scanf(“%f ”, p->num );  //调试时,设置断点

}

}

float average ( struct worker * p, int n )

{

int  i ;

double sum;

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

sum + = p->salary ;

return sum, n ; //调试时,设置断点

}

void main()

{  

struct worker * p = workers ;

int  n ;

printf(“请输入职工人数,不超过10人:”) ;

scanf(“%d” , &n );  //调试时,设置断点

input(* p, n );

printf(“%d个职工的平均工资为:%10.2f ” , n, average(p, n) ) ; //设置断点

}

正确程序:

#include

struct  worker

{   int num ;

float salary ;

} workers[10];

void input( struct worker *p, int n )

{

int  i ;

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

{

    printf("请输入第%d 个职工编号:\n", i + 1);

    scanf("%d", &(p[i].num ));

    printf("请输入第%d 个职工工资:\n", i + 1);

    scanf("%f", &(p[i].salary) );  //调试时,设置断点

   

}

}

float average ( struct worker *p, int n )

{

int  i ;

double sum = 0.0;

for ( i = 0; i< n; i++ ){

    sum += p[i].salary ;

}      

return sum/n ; //调试时,设置断点

}

int main()

{  

//struct worker *p = workers ;

int  n ;

printf("请输入职工人数,不超过10人:") ;

scanf("%d" , &n );  //调试时,设置断点

input(workers, n );

printf("%d个职工的平均工资为:%10.2f ", n, average(workers, n) ) ; //设置断点

return 0;

}

请输入职工人数,不超过10人:3

请输入第1 个职工编号:

001

请输入第1 个职工工资:

5000

请输入第2 个职工编号:

002

请输入第2 个职工工资:

6000

请输入第3 个职工编号:

003

请输入第3 个职工工资:

7000

3个职工的平均工资为:   6000.00

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页题目:实验9结构体-创新互联
路径分享:http://scjbc.cn/article/pdchj.html

其他资讯