前言:
大家好,这是c语言刷题训练营的第四讲,打好基础便于对c语言语法与算法思维的提高,感谢你的来访与支持!
💥🎈个人主页:Dream_Chaser~ 🎈💥
✨✨刷题专栏:http://t.csdn.cn/baIPx
⛳⛳本篇内容:c语言刷题训练营 第四讲(牛客网)
BC23-时间转换
来源: 时间转换_牛客题霸_牛客网 (nowcoder.com)
描述
给定秒数 seconds ,把秒转化成小时、分钟和秒。
数据范围: 0 <seconds < 100000000
输入描述:
一行,包括一个整数,即给定的秒数。
输出描述:
一行,包含三个整数,依次为输入整数对应的小时数、分钟数和秒数(可能为零),中间用一个空格隔开。
示例1
输入:3661
输出:1 1 1
解题思路:
代码实现:
#include <stdio.h> int main() { int seconds=0; scanf("%d",&seconds); int hour=0,min=0,sec=0; hour=seconds/3600; min=seconds%3600/60; sec=seconds%3600%60; printf("%d %d %d ",hour,min,sec); return 0; }
执行:
中间的部分也可以写成这样:
BC24-总成绩和平均分计算
来源:总成绩和平均分计算_牛客题霸_牛客网 (nowcoder.com)
题目描述
依次输入一个学生的3科成绩,在屏幕上输出该学生的总成绩以及平均成绩
输入描述:
一行,3科成绩,成绩之间用一个空格隔开。
输出描述:
一行,总成绩和平均成绩(小数点后保留两位),用一个空格隔开。
示例1
输入:79.5 80.0 98.0
输出:257.50 85.83
解题思路:
方法一
#include <stdio.h> int main() { double a=0.0,b=0.0,c=0.0;//三科成绩 double sum=0.0;//总成绩 double avg=0.0;//平均分 scanf("%lf %lf %lf",&a,&b,&c);//输入三科 sum=a+b+c; avg=sum/3; //输出三科 printf("%.2lf %.2lf",sum,avg); return 0; }
方法二:
int main() { double score[3] = {0.0}; //输入 scanf("%lf %lf %lf",&score[0],&score[1],&score[2]); //计算 double sum= score[0] + score[1] + score[2]; double avg= sum/3.0; //输出 printf("%.2lf %.2lf",sum,avg); return 0; }
方法三:
int main() { double score= 0.0; double sum= 0.0; //输入并计算 int i= 0; for( i=0;i<3;i++) { scanf("%lf",&score); sum += score; } printf("%.2lf %.2lf\n",sum,sum/3); return 0; }
BC30-kiki和酸奶
来源:KiKi和酸奶_牛客题霸_牛客网 (nowcoder.com)
题目描述
BoBo买了一箱酸奶,里面有n盒未打开的酸奶,KiKi喜欢喝酸奶,第一时间发现了酸奶。KiKi 每 h 分钟能喝光一盒酸奶,并且KiKi 在喝光一盒酸奶之前不会喝另一个,那么经过 m 分钟后还有多少盒未打开的酸奶?
输入描述:
多组输入,每组输入仅一行,包括n,h和m(均为整数)。输入数据保证m <= n * h。
输出描述
针对每组输入,输出也仅一行,剩下的未打开的酸奶盒数。
示例1
输入:8 5 16
输出: 4
解题思路:
方法一:
- 每组输入记得写上while(scanf() ! = EOF)
- 求剩下的未打开的酸奶盒数,实际的等于 已喝完的酸奶盒数(m / h) + 已打开的酸奶盒数(m % h)
图解:
代码实现:
#include <stdio.h> int main() { int n = 0;//给的酸奶数 int h = 0;// 分/盒,喝一瓶酸奶的时间 int m = 0;//总共给的时间 //多组输入 while (scanf("%d %d %d", &n, &h, &m) != EOF) { n = n - (m / h + m % h);//剩下未打开的酸奶盒数 } printf("%d", n); return 0; }
执行:
方法二:
n = 0;//给的酸奶数
h = 0;// 分/盒,喝一瓶酸奶的时间
m = 0;//总共给的时间以n为8 ,h为5,m为16,为例子
当 m % h 不为 0 时,表示在16分钟的时间内,16 % 5 商为3,余1 ,则说明3瓶全喝完了,还剩个1瓶已经打开了,还没喝完
以n为8 ,h为4,m为16,为例子
当 m % h 为 0 时,表示在16分钟的时间内,16 % 4 商为4 ,则说明4瓶全喝完了 ,也没有打开的但未喝完的酸奶。
int main() { int n = 0;//给的酸奶数 int h = 0;// 分/盒,喝一瓶酸奶的时间 int m = 0;//总共给的时间 while (scanf("%d %d %d", &n, &h, &m) != EOF) { if (m % h)//不为0,说明有打开但未喝完的酸奶 { printf("%d\n", n - m / h - 1); } else//为0,则说明在m分钟内全部喝完了 { printf("%d\n", n - m / h); } } return 0; }
执行:
BC31-发布会信息
来源:发布信息_牛客题霸_牛客网 (nowcoder.com)
题目描述
你的手机丢了,在屏幕上输出信息告诉大家
输入描述:
无
输出描述:
I lost my cellphone!
解题思路:
直接把输出描述复制一下,粘贴到printf函数内打印即可
代码实现:
#include <stdio.h> int main() { printf("I lost my cellphone!\n"); return 0; }
执行:
BC32-输出学生信息
来源:输出学生信息_牛客题霸_牛客网 (nowcoder.com)
题目描述
学生信息管理系统是学校教学管理的重要工具,现有一名学生基本信息如下:姓名 -Jack ,年龄 -18 ,性别-Man ,请按照输出样例的格式输出该学生的信息。
输入描述:
无
输出描述:
输出分为三行,分别为标题行,分隔行,信息行。
第一行,标题行,每个标题之间间隔 4 个空格。
第二行,分隔行,一共 21 个减号 "-" 。
第三行,信息行,每列输出信息和标题首字母对齐。输出样例如下:
Name Age Gender
---------------------
Jack 18 man
解题思路:
代码实现:
#include <stdio.h> int main() { printf("Name Age Gender\n"); printf("---------------------\n"); printf("Jack 18 man\n"); return 0; }
代码执行: