第四周《C语言及程序设计》实践项目11 体验结构体
Posted weixin_35827498
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周《C语言及程序设计》实践项目11 体验结构体相关的知识,希望对你有一定的参考价值。
【项目1-复数结构体】
/*
* Copyright (c) 2016, CSDN学院
* All rights reserved.
* 文件名称:【项目1-复数结构体】.cpp
* 作 者:张易安
* 完成日期:2016年 9 月 17 日
* 版 本 号:v1.0
*
* 问题描述:编写一个程序,首先定义一个复数数据类型,即结构类型。然后按照复数的运算规则进行计算,并按照复数表示的格式进行输出,请将程序补充完整。
*/
#include<stdio.h>
struct complex
int re;
int im;
;
int main()
struct complex x,y,s,p;
scanf("%d%d",&x.re,&x.im);
scanf("%d%d",&y.re,&y.im);
s.re=x.re+y.re;
s.im=x.im+y.im;
printf("sum=%5d+%5d\\n",s.re,s.im);
p.re=x.im*y.im+x.re+y.re;
p.im=x.re*y.im+x.im*y.re;
printf("product=%5d+%5d\\n",p.re,p.im);
return 0;
运行结果
【项目2-学生成绩处理】
/*
* Copyright (c) 2016, CSDN学院
* All rights reserved.
* 文件名称:【项目2-学生成绩处理】.cpp
* 作 者:张易安
* 完成日期:2016年 9 月 17 日
* 版 本 号:v1.0
*
* 问题描述:(1)定义学生结构体,在结构体数组中,输入了学生学号和两门课的成绩,计算均分后,输出成绩单,请在下面的程序基础上,将程序补充完整。
*/
#include<stdio.h>
#define N 100
struct Student
int num;//学号
int c;//c语言成绩
int math;
float aver;//两课平均分
;
int main()
int n,i,pass=0;
struct Student stu[N];
printf("请输入学生人数:");
scanf("%d",&n);
printf("请输入学号,C和数学课的成绩:\\n");
for(i=0;i<n;i++)
scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math);
stu[i].aver=(stu[i].c+stu[i].math)/2;//求出两门课的平均数
if(stu[i].c>=60&&stu[i].math>=60)
pass++;
//输出成绩单
printf("成绩单:\\n");
printf("学号\\tC\\t数学\\t均分\\n");
for(i=0;i<n;i++)
printf("%d\\t%d\\t%d\\t%.2lf\\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver);
//及格的人数
printf("两门课都及格了的人数有:%d\\n",pass);
return 0;
运行结果
【项目2-学生成绩处理】2
/*
* Copyright (c) 2016, CSDN学院
* All rights reserved.
* 文件名称:【项目2-学生成绩处理】.cpp
* 作 者:张易安
* 完成日期:2016年 9 月 17 日
* 版 本 号:v1.0
*
* 问题描述:(2)请在上面的程序的基础上增加功能,使运行结果如下图:
*其中,需要做出的改动是:
*计算每名学生的学分绩——各科成绩乘以学分的和,再除以总学分(本题中,C语言和数学课的学分分别是3和4);
*计算各科的均分;
*输出得奖学金的同学学号清单——奖学金规则是,学分绩要高于80且没有挂科。
*/
#include<stdio.h>
#define N 100
struct Student
int num;//学号
int c;//c语言成绩
int math;
float aver;//学分绩
;
int main()
int n,i,sum1=0,sum2=0;
float ave1=0,ave2=0;
struct Student stu[N];
printf("请输入学生人数:");
scanf("%d",&n);
printf("请输入学号,C和数学课的成绩:\\n");
for(i=0;i<n;i++)
scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math);
stu[i].aver=(stu[i].c*3+stu[i].math*4)/7;//学分绩
sum1+=stu[i].c;
sum2+=stu[i].math;
ave1=sum1/n;
ave2=sum2/n;
//输出成绩单
printf("成绩单:\\n");
printf("学号\\tC\\t数学\\t学分绩\\n");
for(i=0;i<n;i++)
printf("%d\\t%d\\t%d\\t%.2lf\\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver);
printf("科均分\\t%.2lf\\t%.2lf\\n",ave1,ave2);
//求学号
printf("得奖学金的同学的学号是:\\n");
for(i=0;i<n;i++)
if(stu[i].aver>=80&&stu[i].c>=60&&stu[i].math>=60)
printf("%d",stu[i].num);
return 0;
运行结果
【项目3-点结构体】
/*
* Copyright (c) 2016, CSDN学院
* All rights reserved.
* 文件名称:【项目3-点结构体】.cpp
* 作 者:张易安
* 完成日期:2016年 9 月 17 日
* 版 本 号:v1.0
*
* 问题描述:下面定义了一个表示平面上一点的结构体类型:
*(1)请编写程序,输入一点的横纵坐标,输出该点到原点的距离
*(2)请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,运行结果如下图所示:
*/
#include<stdio.h>
#include<math.h>
struct Point
float x;//横坐标
float y;//纵坐标
;
int main()
struct Point p1,p2;
float distance,d1,d2;//自己开始还想一口气直接把距离求出来,其实再设两个变量更好
printf("请输入p1点的坐标:\\n");
scanf("%f %f",&p1.x,&p1.y);
printf("请输入P2点的坐标:\\n");
scanf("%f %f",&p2.x,&p2.y);
d1 = p1.x-p2.x;
d2 = p1.y-p2.y;
distance = sqrt(p1.x*p2.x+p1.y*p2.y);
printf("两点间的距离是:%.2f\\n",distance);
printf("P1关于x轴的对称点是(%.1f,%.1f)\\n",p1.x,-p1.y);
printf("P1关于原点的对称点是(%.1f,%.1f)\\n",-p2.x,-p2.y);
return 0;
运行结果
【项目4-体重监测器】
/*
* Copyright (c) 2016, CSDN学院
* All rights reserved.
* 文件名称:【项目4-体重监测器】.cpp
* 作 者:张易安
* 完成日期:2016年 9 月 17 日
* 版 本 号:v1.0
*
* 问题描述:根据世界卫生组织推荐的体重标准,男性的标准体重=(身高cm-80)×70﹪,女性的标准体重=(身高cm-70)×60﹪。
*标准体重正负10﹪为正常体重;标准体重正负10﹪~ 20﹪为体重过重或过轻;标准体重正负20﹪以上为肥胖或体重不足,其中超重计算公式为:超重(%)=[(实际体重-标准体重)/(标准体重)]×100%,体重的单位是kg。
*请编程序,输入一个人的姓名、性别、身高、体重,用一句人性味浓的话语输出其体重情况(正常、过重、过轻、肥胖或体重不足),这个程序可以用于体重计上为人们实时报告体重情况。
*要求使用下面的结构体类型表示人的相关信息。
*/
#include<stdio.h>
struct Person
char name[20];
char sex;
double height;
double weight;
;
int main()
struct Person p;
float s;//标准体重
printf("请输入您的姓名,性别,身高,体重:");
scanf("%s %s %lf %lf",&p.name,&p.sex,&p.height,&p.weight);
if(p.sex=='F')
s=(p.height-70)*0.6;
else if(p.sex=='M')
s=(p.height-80)*0.7;
else
printf("你输错了!!!\\n");
//判断是否超重
if(p.weight>=0.9*s&&p.weight<=1.1*s)
printf("ver well,恭喜恭喜,你的体重是正常水平!!!");
else if(p.weight>=0.8*s&&p.weight<=0.9*s)
printf("你这体重有点偏轻啊!咋回事?不会是撸多了肾虚了?");
else if(p.weight>=1.1*s&&p.weight<=1.2*s)
printf("你这体重有点偏胖啊!要注意!");
else if(p.weight<0.8*s)
printf("你要我怎么说你???你咋不上天呢?");
else if(p.weight>1.2*s)
printf("你可以把地压塌了,有潜质!");
return 0;
运行结果
后面的我看了看都差不多,就不浪费时间了(其实是我懒,逃。。。
以上是关于第四周《C语言及程序设计》实践项目11 体验结构体的主要内容,如果未能解决你的问题,请参考以下文章