

🔥个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训 🍉学习方向:C/C++方向 ⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平

前言:上一篇博客又带大家刷了一些入门的简单代码题目,本篇文章我们将继续练习下面的题目。宇宙安全声明:鉴于博主能力有限,本专栏适用于代码小白刷题,大佬们多多包涵(抱拳)!
正文
一、刷题第三篇余下的两题
1、浮点数的个位数字
2、你能活多少秒
二、正片
1、时间转换
2、总成绩和平均分计算
3、KiKi和酸奶
4、发布信息
5、输出学生信息
6、计算平均成绩
7、进制A+B
8、网购
9、争夺前五名
结尾
昨天,铸币博主居然少讲了两道题!呜呼哀哉!今天铸币博主将功补过,一口气把昨天的和今天的代码题全部讲完!好啦,今天因为铸币博主昨天的失误,我们得讲解十一道代码题目。
描述: 给定一个浮点数,要求得到该浮点数的个位数。 数据范围: 0<𝑛≤200 输入描述: 一行,包括一个浮点数。 输出描述: 一行,包含一个整数,为输入浮点数对应的个位数。

输入浮点型,输出浮点数对应的个位,很简单,我们除余上一个10就可以了:
#include <stdio.h>
int main()
{
double a = 0.0;
scanf("%lf",&a);
int sum = (int)a % 10;
printf("%d",sum);
return 0;
}描述: 问题:一年约有 3.156×10^7s,要求输入您的年龄,显示该年龄合多少秒。 数据范围:0<age≤200 。 输入描述: 一行,包括一个整数age; 数据范围:0<age≤200 。 输出描述: 一行,包含一个整数,输出年龄对应的秒数。

两种思路,我们直接写出来就可以了——
写法(1):
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d\n",&age);
long long int sum = age * 31560000;
printf("%lld\n",sum);
return 0;
}写法(2):
#include <stdio.h>
int main()
{
int age = 0;
int number = 3.156e7;
scanf("%d\n", &age);
long long int sum = age * number;
printf("%lld\n", sum);
return 0;
}以下就是今天的主菜啦,一共九道题——

计算好对应的数字,按照格式打印就行——
思路1:
#include <stdio.h>
int main()
{
int seconds = 0;
scanf("%d",&seconds);
int minute = 0;
int s = 0;
int hour = 0;
if(minute <= 59 ||s <= 59)
hour = seconds /60 /60;
minute = seconds %3600 /60;
s = seconds %3600 %60 ;
printf("%d %d %d",hour,minute,s);
return 0;
}思路2:
#include <stdio.h>
int main()
{
int sec = 0;
scanf("%d", &sec);
int h = sec/60/60;
int m = sec/60%60;
int s = sec%60;
printf("%d %d %d\n", h,m,s);
return 0;
}
1.、本题在接收数据的同时就可以计算分数的总和,不一定非要等数据全部接收完毕; 2.、按照格式打印就行。
思路1:
#include <stdio.h>
int main()
{
float s1 = 0.0;
float s2 = 0.0;
float s3 = 0.0;
scanf("%f %f %f", &s1, &s2, &s3);
float alls = 0.0;
float pins = 0.0;
alls = s1 + s2 + s3;
pins = (s1 + s2 + s3) / 3.0;
printf("%.2f %.2f", alls, pins);
return 0;
}思路2:
#include <stdio.h>
int main()
{
float s1 = 0.0;
float s2 = 0.0;
float s3 = 0.0;
scanf("%f %f %f", &s1, &s2, &s3);
float alls = s1 + s2 + s3;
float pins = (s1 + s2 + s3) / 3.0;
printf("%.2f %.2f", alls, pins);
return 0;
}思路3:
#include <stdio.h>
int main()
{
float score[3] = {0};
scanf("%f %f %f", &score[0], &score[1], &score[2]);
float alls = score[0] + score[1] + score[2];
float pins = alls / 3.0;
printf("%.2f %.2f", alls, pins);
return 0;
}思路4:
#include <stdio.h>
int main()
{
float score = 0.0;
float alls =0.0;
for(int i = 0;i < 3;i++)
{
scanf("%f", &score);
alls += score;
}
printf("%.2f %.2f", alls, alls / 3);
return 0;
}
1、注意多组输入 2、如果h分钟喝一瓶酸奶,那么m分钟喝汽水的瓶数就是h/m瓶,但是如果m%h有余数,就说明又打 开了一瓶,只是没来得及喝完,那么位打开的就少一瓶。
两种写法——
思路(1):
#include <stdio.h>
int main()
{
float n = 0.0;
float h = 0.0;
float m = 0.0;
if(m <= n*h)
scanf("%f %f %f",&n,&h,&m);
int ret = n - (m / h);
printf("%d",ret);
return 0;
}思路(2):
#include <stdio.h>
int main()
{
int n = 0;
int h = 0;
int m = 0;
while(scanf("%d %d %d", &n, &h, &m)!= EOF);
if (m % h)
{
printf("%d\n", n - m / h - 1);
}
else
printf("%d\n", n - m / h);
return 0;
}
这道题相当简单,是个入门题目,直接按照要求输出结果就是了。本题其实应该放在刷题第一篇里面,我们就直接看代码吧——
#include <stdio.h>
int main()
{
printf("%s","I lost my cellphone!");
return 0;
}
本题很简单,按照题目要求的格式输出就行了,本题也有两种思路——
思路(1):
#include <stdio.h>
int main()
{
char Name[] = "Name";
int Age = 18;
char Gender[] = "Gender";
printf("%s %s %s\n",Name,"Age",Gender);
printf("---------------------\n");
printf("%s %4d %s\n","Jack",Age,"man");
return 0;
}思路(2):
用这种思路写要注意对齐——
#include "stdio.h"
int main()
{
printf("Name Age Gender\n");
printf("---------------------\n");
printf("Jack 18 man\n");
return 0;
}
在获取输入数据的同时,计算成绩总和,然后求出平均值,按照格式输出就行。
写法(1):
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
float ret = (a+b+c+d+e)/5.0;
printf("%.1f",ret);
return 0;
}写法(2):
#include <stdio.h>
int main()
{
int score[5] = {0};
int i = 0;
for(i = 0;i < 5;i++)
{
scanf("%d",&score[i]);
}
int sum = 0;
for(i = 0;i < 5;i++)
{
sum += score[i];
}
printf("%.1f",sum/5.0);
return 0;
}
1、首先我们要理解十进制、十六进制、八进制只是一种数据的表示形式,不是数据的存储形式; 2.、不同格式的数据的输出在C语言中有不同的格式指定,比如:%x是十六进制格式,%o就是八进制格式; 3、不同进制的数据存放都整形变量中都是整型值,直接计算就行。
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%x %o",&a,&b);
int ret = a + b;
printf("%d",ret);
return 0;
}
这道题我们只要理解题目的意思就很好写了,注意抵扣完后价格小于0,只能按照0计算,记得按照格式输出——
写法(1) :
#include<stdio.h>
int main()
{
float price = 0.0;
int month = 0;
int day = 0;
int flag = 0;
float cut = 0.0;
scanf("%f%d%d%d",&price,&month,&day,&flag);
if(month == 11 && day == 11)
{
float cut = 0.7;
if(flag == 0)
{
price = price*cut;
}
else if(flag == 1)
{
price = price*cut - 50;
}
}
else if(month == 12 && day == 12)
{
float cut = 0.8;
if(flag == 0)
{
price = price*cut;
}
else if(flag == 1)
{
price = price*cut - 50;
}
}
if(price < 0.0)
price = 0.0;
printf("%.2f\n",price);
return 0;
}写法(2):
#include<stdio.h>
int main()
{
float price = 0.0;
int month = 0;
int day = 0;
int flag = 0;
float cut = 1.0;
scanf("%f%d%d%d",&price,&month,&day,&flag);
if(month == 11 && day == 11)
{
cut = 0.7;
price = price*cut-50*flag;
}
else if(month == 12 && day == 12)
{
cut = 0.8;
price = price*cut-50*flag;
}
if(price < 0.0)
price = 0;
printf("%.2f",price);
return 0;
}
1. 要学会使用C语言库函数提供qsort函数; 2. 或者自己实现一个简单的整型数组排序代码 。
这道题就很好地体现了“算法的思路有很多种”这句话,博主有四种写法,大家可以参考一下:
写法(1):
//排序
#include "stdio.h"
int main()
{
int n = 0;
int arr[40] = {0};
scanf("%d\n",&n);
int i = 0;
for(i = 0;i < n;i++)
{
scanf("%d ",&arr[i]);
}
for(i = 0;i < n -1 ;i++)
{
int j = 0;
for(j = 0;j < n - 1 - i;j++)
{
if(arr[j] < arr[j+1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for(i = 0;i < 5;i++)
{
printf("%d ",arr[i]);
}
return 0;
}写法(2):
#include "stdio.h"
int main()
{
int n = 0;
int arr[40] = {0};
scanf("%d\n",&n);
int i = 0;
for(i = 0;i < n;i++)
{
scanf("%d ",&arr[i]);
}
for(i = 0;i < n -1 ;i++)
{
int j = 0;
for(j = 0;j < n - 1 - i;j++)
{
if(arr[j] > arr[j+1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for(i = n-1;i >= n-5;i--)
{
printf("%d ",arr[i]);
}
return 0;
}写法(3):
#include "stdio.h"
int main()
{
int n = 0;
int arr[40] = {0};
scanf("%d",&n);
int i = 0;
for(i = 0;i < n;i++)
{
scanf("%d",&arr[i]);
}
for(i = 0;i < n-1;i++)
{
int j = 0;
for(j = 0;j < n - 1 - i;j++)
{
if(arr[j] < arr[j+1])
{
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
for(i = 0;i < 5;i++)
{
printf("%d ",arr[i]);
}
return 0;
}写法(4):
#include "stdio.h"
#include "stdlib.h"
int cmp_int(const void*e1,const void*e2)
{
return *(int*)e1 - *(int*)e2;
}
int main()
{
int n = 0;
int arr[40] = {0};
scanf("%d",&n);
int i = 0;
for(i = 0;i < n;i++)
{
scanf("%d",&arr[i]);
}
qsort(arr,n,4,cmp_int);
for(i = n - 1;i >= n-5;i--)
{
printf("%d ",arr[i]);
}
return 0;
}往期回顾:
【C语言刷题】第三天:继续加量加餐,代码题入门,熟练IO模式
结语:本篇文章带大家刷了十一道题目,到这里就结束了,希望对友友们有所帮助。本文的代码相对于之后的代码题还是很简单的,小白也能直接上手操作,后面的代码题难度上整体是逐渐递增的,博主控制了难度,这样友友们能比较丝滑地上手敲下去。