首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【C语言刷题】第四天:继续加量加餐,代码题入门,熟练IO模式

【C语言刷题】第四天:继续加量加餐,代码题入门,熟练IO模式

作者头像
艾莉丝努力练剑
发布2025-11-13 09:25:39
发布2025-11-13 09:25:39
1450
举报
文章被收录于专栏:C / C++C / C++

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



前言:上一篇博客又带大家刷了一些入门的简单代码题目,本篇文章我们将继续练习下面的题目。宇宙安全声明:鉴于博主能力有限,本专栏适用于代码小白刷题,大佬们多多包涵(抱拳)!


目录

正文

一、刷题第三篇余下的两题

1、浮点数的个位数字

2、你能活多少秒

二、正片

1、时间转换

2、总成绩和平均分计算

3、KiKi和酸奶

4、发布信息

5、输出学生信息

6、计算平均成绩

7、进制A+B

8、网购

9、争夺前五名

结尾


正文

昨天,铸币博主居然少讲了两道题!呜呼哀哉!今天铸币博主将功补过,一口气把昨天的和今天的代码题全部讲完!好啦,今天因为铸币博主昨天的失误,我们得讲解十一道代码题目。

一、刷题第三篇余下的两题

1、浮点数的个位数字

BC24 浮点数的个位数字

描述: 给定一个浮点数,要求得到该浮点数的个位数。 数据范围: 0<𝑛≤200 输入描述: 一行,包括一个浮点数。 输出描述: 一行,包含一个整数,为输入浮点数对应的个位数。

输入浮点型,输出浮点数对应的个位,很简单,我们除余上一个10就可以了:

代码语言:javascript
复制
#include <stdio.h>

int main() 
{
    double a = 0.0;
    scanf("%lf",&a);
    int sum = (int)a % 10;
    printf("%d",sum);
    return 0;
}
2、你能活多少秒

BC32 你能活多少秒

描述: 问题:一年约有 3.156×10^7s,要求输入您的年龄,显示该年龄合多少秒。 数据范围:0<age≤200 。 输入描述: 一行,包括一个整数age; 数据范围:0<age≤200 。 输出描述: 一行,包含一个整数,输出年龄对应的秒数。

两种思路,我们直接写出来就可以了——

写法(1):

代码语言:javascript
复制
#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):

代码语言:javascript
复制
#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、时间转换

BC23 时间转换

计算好对应的数字,按照格式打印就行——

思路1:

代码语言:javascript
复制
#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:

代码语言:javascript
复制
#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;
}
2、总成绩和平均分计算

BC24 总成绩和平均分计算

1.、本题在接收数据的同时就可以计算分数的总和,不一定非要等数据全部接收完毕; 2.、按照格式打印就行。

思路1:

代码语言:javascript
复制
#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:

代码语言:javascript
复制
#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:

代码语言:javascript
复制
#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:

代码语言:javascript
复制
#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;
}
3、KiKi和酸奶

BC30 KiKi和酸奶

1、注意多组输入 2、如果h分钟喝一瓶酸奶,那么m分钟喝汽水的瓶数就是h/m瓶,但是如果m%h有余数,就说明又打 开了一瓶,只是没来得及喝完,那么位打开的就少一瓶。

两种写法——

思路(1):

代码语言:javascript
复制
#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):

代码语言:javascript
复制
#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;
}
4、发布信息

BC31 发布信息

这道题相当简单,是个入门题目,直接按照要求输出结果就是了。本题其实应该放在刷题第一篇里面,我们就直接看代码吧——

代码语言:javascript
复制
#include <stdio.h>

int main() 
{
    printf("%s","I lost my cellphone!");
    return 0;
}
5、输出学生信息

BC32 输出学生信息

本题很简单,按照题目要求的格式输出就行了,本题也有两种思路——

思路(1):

代码语言:javascript
复制
#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):

用这种思路写要注意对齐——

代码语言:javascript
复制
#include "stdio.h"

int main()
{
    printf("Name    Age    Gender\n");
    printf("---------------------\n");
    printf("Jack    18     man\n");
    return 0;
}
6、计算平均成绩

BC33 计算平均成绩

在获取输入数据的同时,计算成绩总和,然后求出平均值,按照格式输出就行。

写法(1):

代码语言:javascript
复制
#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):

代码语言:javascript
复制
#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;
}
7、进制A+B

BC34 进制A+B

1、首先我们要理解十进制、十六进制、八进制只是一种数据的表示形式,不是数据的存储形式; 2.、不同格式的数据的输出在C语言中有不同的格式指定,比如:%x是十六进制格式,%o就是八进制格式; 3、不同进制的数据存放都整形变量中都是整型值,直接计算就行。

代码语言:javascript
复制
#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;
}
8、网购

BC37 网购

这道题我们只要理解题目的意思就很好写了,注意抵扣完后价格小于0,只能按照0计算,记得按照格式输出——

写法(1) :

代码语言:javascript
复制
#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):

代码语言:javascript
复制
#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;
}
9、争夺前五名

BC39 争夺前五名

1. 要学会使用C语言库函数提供qsort函数; 2. 或者自己实现一个简单的整型数组排序代码 。

这道题就很好地体现了“算法的思路有很多种”这句话,博主有四种写法,大家可以参考一下:

写法(1):

代码语言:javascript
复制
//排序
#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):

代码语言:javascript
复制
#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):

代码语言:javascript
复制
#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):

代码语言:javascript
复制
#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模式

【C语言刷题】第二天:加量加餐,代码入门,熟悉IO模式

【C语言刷题】第一天:简单代码入门,熟悉IO模式

结语:本篇文章带大家刷了十一道题目,到这里就结束了,希望对友友们有所帮助。本文的代码相对于之后的代码题还是很简单的,小白也能直接上手操作,后面的代码题难度上整体是逐渐递增的,博主控制了难度,这样友友们能比较丝滑地上手敲下去。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 正文
    • 一、刷题第三篇余下的两题
      • 1、浮点数的个位数字
      • 2、你能活多少秒
    • 二、正片
      • 1、时间转换
      • 2、总成绩和平均分计算
      • 3、KiKi和酸奶
      • 4、发布信息
      • 5、输出学生信息
      • 6、计算平均成绩
      • 7、进制A+B
      • 8、网购
      • 9、争夺前五名
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档