【C语言基础】练习:结构体统计学生成绩,快递费用计算
每日练习一:结构体统计学生成绩
题目要求:有3名学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入3个学生的数据,打印出每个学生的平均成绩,以及最高分学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
#include<stdio.h>#define N 2struct student{char id;char name[10];int score[3];//暂且设置输入三科成绩 }stu[N];int main(){int i,j;//i和学生关联,j和成绩关联 int max=0;int sum[10]={0};float average[N];//赋值模块 for(i=0;i<N;i++){printf("请输入学号 姓名:\n");scanf("%d %s",&stu[i].id,&stu[i].name);for(j=0;j<3;j++){printf("请输入第%d科成绩:\n",j+1);scanf("%d",&stu[i].score[j]);}}//计算每个学生总成绩和平均成绩 for(i=0;i<N;i++){for(j=0;j<3;j++){sum[i]+=stu[i].score[j];//每个学生的总成绩 }average[i]=sum[i]/3.0; //平均成绩 }//输出总成绩最高的学生姓名 各科成绩 总成绩for(i=0;i<N;i++){if(sum[max]<sum[i]){max=i;}}printf("\n姓名 总分 平均成绩\n");for(i=0;i<N;i++){printf("%s %d %.1f",stu[i].name,sum[i],average[i]);printf("\n");}printf("分数最高的学生信息如下:\n");printf("学号 姓名 成绩\n");printf("%d %s ",stu[max].id,stu[max].name);for(j=0;j<3;j++){printf(" %d ",stu[max].score[j]);}return 0;
}
代码是一步步修改得来的,这里我为了方便调试,代码中把人数设置为2。
注意事项❤️:
- i, j, sum, max等变量不应在结构体内部定义,在主函数内部用的话,就在main函数的开头部分,定义如上变量。
- 由于此程序要键盘输入很多数,所以在赋值模块中,一定要打印 提示语句。
- 数组内的元素比较大小后,没必要将数组进行交换,只需记住数组的位置
每日练习二:快递费用计算
本关任务:编写一个计算机快递费的程序。
某快递公司根据投送目的地距离公司的远近,将全国划分成
5
个区域:0 1 2 3 4快递费按邮件重量计算,由起重费用、续重费用两部分构成:
(1) 起重(首重)
1
公斤按起重资费计算(不足1
公斤,按1
公斤计算),超过首重的重量,按公斤(不足1
公斤,按1
公斤计算)收取续重费;(2) 同城0区起重资费
10
元,续重3
元/公斤;(3) 寄往
1
区的邮件,起重资费10
元,续重4
元;(4) 寄往其他地区的邮件,起重资费统一为
15
元。而续重部分,不同区域价格不同:2
区的续 重5
元/公斤,3
区的续重6.5
元/公斤,4
区的续重10
元/公斤。编程要求
编写程序,从键盘输入邮件的目的区域编码和重量,计算并输出运费,计算结果保留
2
位小数。续重部分不足一公斤,按
1
公斤计算。因此,如包裹重量2.3
公斤:1
公斤算起重,剩余的1.3
公斤算续重,不足1
公斤按1
公斤计算,1.3
公斤折合续重为2
公斤。如果重量应大于0
、区域编号不能超出0-4
的范围。
知识补充:
- 直接赋值给整数变量。如: int i = 2.5 或 i = (int) 2.5 这种方法采用的是舍去小数部分。
- 使用运算符。C/C++中的整数除法运算符"/"本身就有取整功能(int / int),整数除法对正数的取整是舍去小数部分,但是整数除法对负数的取整结果和使用的C编译器有关。
- 使用floor函数。floor(x)返回的是x的整数部分。如: floor(2.5) = 2 floor(-2.5) = -3
- 使用ceil函数。ceil(x)返回的是不大于x的最小整数。如: ceil(2.5) = 3 ceil(-2.5) = -2
- floor和ceil对于正数没有区别,但是对于负数结果不同。floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。
- round(x)返回x的四舍五入整数值。
C语言数学函数ceil(), floor(), round()均使用头文件#include<math.h>,返回类型均为double,默认8位小数。此程序主要以switch语句为主体
#include<stdio.h>
#include<math.h>
int main()
{int i,num;float n,weight,price;printf("请输入地区编号和重量:\n"); scanf("%d,%f",&num,&n);//输入地区编号和初始重量 weight=ceil(n);//此函数功能详见上方“知识补充” switch(num){case 0:if(weight<=1)price=10;elseprice=10+3*(weight-1);break;case 1:if(weight<=1)price=10;elseprice=10+4*(weight-1);break;case 2:case 3:case 4:if(num==2){price=15+5*(weight-1);break;}else if(num==3){price=15+6.5*(weight-1);break;}else if(num==4){price=15+10*(weight-1);break; }default:printf("Error in Area\n"); }printf("Price: %.2f\n",price);return 0;
}
写在最后
创作不易,还希望各位大佬支持!
【C语言基础】练习:结构体统计学生成绩,快递费用计算相关推荐
- 利用C语言结构体实现学生成绩录入系统
利用C语言结构体实现学生成绩录入系统 ##功能介绍 密码功能嵌入于主函数中,初始密码为:123456(可根据需要修改) 输入1可以调用add函数对学生的基本信息以及成绩进行输入 输入2则调用print ...
- C语言汇总学生成绩,c语言用二维数组统计学生成绩.doc
c语言用二维数组统计学生成绩 # include /*定义一个求每门课平均成绩的函数AverageCourse 它的形参一个是二维数组,用来传递学生成绩: 一个是指针变量(数组名),存放每门课的平均成 ...
- Go语言基础之结构体
转载地址:https://www.liwenzhou.com/posts/Go/10_struct/ Go语言中没有"类"的概念,也不支持"类"的继承等面向对象 ...
- c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现
宋福英 摘 要: 中国高校为保证学生信息安全,各分院的学生信息都在一个相对封闭的闭环内共享.中国高校在校生人数逐年递增,给高校的信息管理带来不小压力.C语言兼具高级语言和汇编语言的特点,简洁.紧凑. ...
- 10.Go语言基础之结构体
Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 ...
- C语言:Educoder结构体储存学生信息
任务描述 本关任务:使用结构体储存学生信息(包括学号,姓名,3门课程成绩,总分),要求实现对学生信息修改和删除操作,最多50名学生. 相关知识 参考结构体第1关相关知识 编程要求 在右侧编辑器Begi ...
- c++ 结构体初始化_【干货】c语言基础语法——结构体
1.关于C语言结构体的引入 学习环境搭建1_Linux C语言_嵌入式开发工程师-创客学院www.makeru.com.cn 在实际问题中有时候我们需要几种数据类型一起来修饰某个变量. 例如一个学生 ...
- c语言结构体编辑学生成绩管理,【C语言】结构体的应用以及学生成绩管理系统的设计...
一.结构体 数组中的各元素是属于同一个类型的.有时需要将不同类型的数据组合成一个整体,以便于引用.如,一个学生的学号.姓名.性别.年龄.成绩.家庭地址等项.这些项都与某一学生相联系.如果分别定义为互相 ...
- go结构体初始化_go语言基础之结构体普通变量初始化
1.结构体 1.1.结构体类型 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性.显然单独定义以上变量比较繁琐,数据不便于管理. 结构体是一种聚合的数 ...
最新文章
- 计算机设置内存储器的必要性,计算机设置内存储器的必要性
- 10 windows 启动虚拟机报错_Windows 系统如何安装 Docker
- 用tomcat 发布mule 服务 (转)
- OGRE 1.7.2 [Cthugha] 编译配置全过程方法
- 阿里云Tech Insight 企业迁云实战专场强势来袭!
- dj鲜生-07-静态文件的成功加载-用户注册的页面
- 负载均衡研究 基础
- mysql 多键sequence_MySQL增多Sequence管理功能
- php中表格怎么垂直居中,如何利用display:table-cell实现垂直居中?
- WEB前端优化必备压缩工具YUI-compressor详解
- 欧姆龙CP1H的PLC步进功能图编程实例
- Win10 64位系统运行汇编程序(使用masm与dosbox)
- 关于windriver WD_NO_LICENSE错误和解决办法
- 容斥原理与Mobius函数
- linux ntp时间立即同步命令_linux时间同步,ntpd、ntpdate
- Java封装e4a_E4A类库封装从入门到放弃
- 网络语言上多个C是什么意思,今年流行的网络用语,个个都很有意思,你知道几个呢?...
- 往事不回头,今后不将就~~Fighting
- Linux环境C语言开发基础
- 动网8.2版本的注入漏洞的利用
热门文章
- matlab如何查看函数源代码,通达信fft函数,如何查看matlab fft函数源代码
- android 多语言国际化文件夹名称
- 2013年6月22日全国高校计算机联合考试广西考区一级笔试试题,全国高校计算机联合考试(广西考区)一级笔试试题卷2010年6月26日A.doc...
- python爬去智联招聘网_Python爬虫爬取智联招聘(进阶版)
- 想学非标机械设计的朋友看过来!不然后悔终生
- linux 读卡器信息,读卡器是怎么读取信息的?
- 未来人P57堪称最强笔记本
- STM32 矩阵键盘通过串口输出
- Excel给同一单元格设置不同颜色的字体
- [转]仿91助手的PC与android手机通讯