C代写 结构体数组作业代写代做

C代写 结构体数组作业代写代做
综合训练一 结构体及结构体数组

一、实验学时 4学时
二、实验目的
1.掌握结构体类型变量和结构体数组的定义和初始化;
2.掌握结构体数组的输入和输出;
3.掌握在相关算法中结构体数组的应用。
三、实验内容
1. 在解决实际问题时,单独用单个的结构体类型变量的很少,一般是以结构体类型数组的形式出现,结构体数组就是具有相同结构类型的变量集合。
例如:若将一个班级20个同学的姓名、性别、学号和三科考试成绩进行定义, 可以定义成一个结构体数组。如下所示:
struct / *定义学生结构体类型* /
{
char name[20]; / *学生姓名* /
char sex; / *性别* /
long num; / *学号* /
float score[3]; / *三科考试成绩* /
} stud[20]; /*定义结构体类型数组stud,数组有2 0个结构体类型元素*/

也可定义为:
struct stu / *定义学生结构体类型* /
{
char name[20]; / *学生姓名* /
char sex; / *性别* /
long num; / *学号* /
float score[3]; / *三科考试成绩* /
};
struct stu stud[20]; /*定义结构体类型数组,有2 0个结构体类型元素*/

结构体数组成员的访问形式为: 结构数组元素.成员名
其数组元素各成员的引用形式为:
stud[0].name、stud[0].sex、stud[0].score[i];
stud[1].name、stud[1].sex、stud[1].score[i];
...
...
stud[19].name、stud[19].sex、stud[19].score[i];

2.下面的程序在结构体数组worker中存放5个工人的数据包括编号、姓名、年龄、工资,注意观察数据的输入和输出方法。
struct work /*职工基本情况*/
{ char num[10]; /*工号*/
char name[10]; /*姓名*/
int age; /*年龄*/
int salary; /*工资*/
} worker[5];
main( )
{ int i;
for(i=0;i<5;i++)
{ scanf("%s%s",worker[i].num,worker[i].name); /*输入工号和姓名*/
scanf("%d%d",&worker[i].age,&worker[i].salary);} /*输入年龄和工资*/
for(i=0;i<5;i++)
{ printf("%s\t%s\t%d\t%d\n",worker[i].num,worker[i].name,worker[i].age,worker[i].salary); }
}

3.下面的程序在结构体数组worker中存放5个工人的编号和姓名,用gets和puts函数,注意观察数据的输入和输出方法:
#include “stdio.h”
struct work
{ char num[10];
char name[10];
} ;
main()
{ int i;
struct work worker[5];
for(i=0;i<5;i++)
{ gets(worker[i].num ); /*输入工号*/
gets(worker[i].name); /*输入姓名*/
}
for(i=0;i<5;i++)
{ puts(worker[i].num );printf(" "); /*输出工号*/
puts(worker[i].name);printf("\n"); /*输出姓名*/
}
}


4.若有一个可以包含20个学生的信息的结构体数组,结构体成员有学号、姓名、语文、数学、英语和平均分,编程实现对于这20个学生的结构体数组的输入和输出及求出每个学生的平均分,参考程序如下。
#include <stdio.h>
struct student /*定义学生结构体类型*/
{
int no; / *学号* /
char name[20]; / *学生姓名* /
int chinese; /*语文成绩*/
int maths; /*数学成绩*/
int english; /*英语成绩*/
float ave; /*平均成绩*/
}stu[20]; /*定义结构体类型数组,有2 0个结构体类型元素*/

main( )
{ int i,length=0,n;
printf("Input the number of student:");
scanf("%d",&n); /*输入实际学生人数*/
for(i=length;i<length+n;i++)
{
printf("the %d student's no: ",i+1);
scanf("%d",&stu[i].no); /*输入学号* /
printf("the %d stdent's name: ",i+1);
scanf("%s",stu[i].name); /*输入学生姓名* /
printf("the %d stdent's chinese: ",i+1);
scanf("%d",&stu[i].chinese); /*输入语文成绩*/
printf("the %d stdent's maths: ",i+1);
scanf("%d",&stu[i].maths); /*输入数学成绩*/
printf("the %d stdent's english: ",i+1);
scanf("%d",&stu[i].english); /*输入英语成绩*/

stu[i].ave=(stu[i].chinese+stu[i].maths+stu[i].english)/3.0;
/*计算每个学生的平均成绩*/
printf("\n");
}
length=length+n;
printf("\tNo\tName\tChinese\tMaths\tEnglish\tAveage\n\n");
for(i=0;i<length;i++)
{ printf("%8d%10s%8d%8d%8d%8.1f\n",stu[i].no,stu[i].name,
stu[i].chinese,stu[i].maths,stu[i].english,stu[i].ave);
} /*输出学生信息*/
}


5. 某企业四名职工信息的输入和输出,参考程序如下。
main( )
{ struct employee /*职工基本情况*/
{ int num; /*工号*/
char name[8]; /*姓名*/
int age; /*年龄*/
int salary; /*工资*/
}em[4];
int i;
for(i=0;i<4;i++)
{ scanf("%d",&em[i].num); /*输入工号*/
scanf("%s",em[i].name); /*输入姓名*/
scanf("%d",&em[i].age); /*输入年龄*/
scanf("%d",&em[i].salary); /*输入工资*/
}
for(i=0;i<4;i++)
{ printf ("%d ",em[i].num); /*输出工号*/
printf("%s ",em[i].name); /*输出姓名*/
printf("%d ",em[i].age); /*输出年龄*/
printf("%d ",em[i].salary); /*输出工资*/
printf("\n");
}
}


6. 求某企业四名职工工资的平均值
main( )
{ struct employee /*职工基本情况*/
{ int num; /*工号*/
char name[8]; /*姓名*/
int age; /*年龄*/
int salary; /*工资*/
}em[4]={{1,"wang",25,450},{1,"li",38,890},{3,"qi",30,234},{4,"jiang",54,759}};
float s=0,aver; int i;
for(i=0;i<4;i++)
s+=em[i].salary;
aver=s/4.0;
printf("%f\n ", aver); /*输出平均工资*/
}


7. 找出企业四名职工工资的最高者及他的全部信息。
main( )
{ struct employee /*职工基本情况*/
{ int num; /*工号*/
char name[8]; /*姓名*/
int age; /*年龄*/
int salary; /*工资*/
}em[4]={{1,"wang",25,450},{1,"li",38,890},{3,"qi",30,890},{4,"jiang",54,759}};
int i,max=em[0].salary;
for(i=0;i<4;i++)
if (em[i].salary >max) max=em[i].salary;
printf("%d\n ",max);
for(i=0;i<4;i++)
if (em[i].salary==max)
{ printf ("%d ",em[i].num); /*输出工号*/
printf("%s ",em[i].name); /*输出姓名*/
printf("%d ",em[i].age); /*输出年龄*/
printf("%d ",em[i].salary); /*输出工资*/
printf("\n");
}
}


8.查找某企业职工中年龄大于35岁的职工并显示他们的全部信息。
main( )
{ struct employee /*职工基本情况*/
{ int num; /*工号*/
char name[8]; /*姓名*/
int age; /*年龄*/
int salary; /*工资*/
}em[4]={{1,"wang",25,450},{1,"li",38,890},{3,"qi",30,234},{4,"jiang",54,759}};
int i;
for (i=0;i<4;i++)
if (em[i].age>35)
{ printf ("%d ",em[i].num); /*输出工号*/
printf("%s ",em[i].name); /*输出姓名*/
printf("%d ",em[i].age); /*输出年龄*/
printf("%d ",em[i].salary); /*输出工资*/
printf("\n");
}
}

9. 将某企业职工的信息按工资从多到少进行排序。
main()
{ struct employee /*职工基本情况*/
{ int num; /*工号*/
char name[8]; /*姓名*/
int age; /*年龄*/
int salary; /*工资*/
}em[4]={{1,"wang",25,450},{2,"li",38,890},{3,"qi",30,234},{4,"jiang",54,759}};
int i,j,x,y,t; char ch[8];
for(i=0;i<4-1;i++ )
for(j=0;j<4-1-i;j++ )
if (em[j].salary<em[j+1].salary)
{ t=em[j].num; /*交换工号*/
em[j].num=em[j+1].num;
em[j+1].num=t;
strcpy(ch,em[j].name); /*交换姓名*/
strcpy(em[j].name,em[j+1].name);
strcpy(em[j+1].name,ch);
t=em[j].age; /*交换年龄*/
em[j].age =em[j+1].age;
em[j+1].age =t;
t=em[j].salary; /*交换工资*/a
em[j].salary =em[j+1].salary;
em[j+1].salary =t;
}
for(i=0;i<4;i++)
{ printf ("%d ",em[i].num); /*输出工号*/
printf("%s ",em[i].name); /*输出姓名*/
printf("%d ",em[i].age); /*输出年龄*/
printf("%d ",em[i].salary); /*输出工资*/
printf("\n");
}
}


四、实验注意事项
1.结构体中各成员是被分别分配独立的存储单元,。
2.不可以用scanf( )函数对结构体进行整体赋值,只能通过对成员的赋值来改变结构体变量的值。
http://www.6daixie.com/contents/13/1362.html

本团队核心人员组成主要包括硅谷工程师、BAT一线工程师,国内Top5硕士、博士生,精通德英语!我们主要业务范围是代做编程大作业、课程设计等等。

我们的方向领域:window编程 数值算法 AI人工智能 金融统计 计量分析 大数据 网络编程 WEB编程 通讯编程 游戏编程多媒体linux 外挂编程 程序API图像处理 嵌入式/单片机 数据库编程 控制台 进程与线程 网络安全  汇编语言 硬件编程 软件设计 工程标准规等。其中代写代做编程语言或工具包括但不限于以下范围:

C/C++/C#代写

Java代写

IT代写

Python代写

辅导编程作业

Matlab代写

Haskell代写

Processing代写

Linux环境搭建

Rust代写

Data Structure Assginment 数据结构代写

MIPS代写

Machine Learning 作业 代写

Oracle/SQL/PostgreSQL/Pig 数据库代写/代做/辅导

Web开发、网站开发、网站作业

ASP.NET网站开发

Finance Insurace Statistics统计、回归、迭代

Prolog代写

Computer Computational method代做

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:[email protected]

微信:codinghelp

猜你喜欢

转载自www.cnblogs.com/beautyful/p/8992809.html
今日推荐