实验9结构体-创新互联
一、实验目的
创新互联主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务东辽,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575- 掌握结构体定义、结构体变量的定义及使用方法。
- 掌握结构体类型数组的定义、初始化、元素的赋值和使用。
- 掌握结构体类型变量和共用体类型变量的区别。
- 了解单链表的建立、访问、插入和删除操作。
二、实验内容
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://scyanting.com/article/pdchj.html