C语言每日一练——day_4

ops/2025/3/14 13:19:39/

引言

        针对初学者,每日练习几个题,快速上手C语言。第四天。(连续更新中)

        采用在线OJ的形式

什么是在线OJ?

        在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用来测试参赛程序的在线系统,也可以用于平时的练习。

        详细内容可以看一下这篇博客:关于C/C++语言的初学者在哪刷题,怎么刷题-CSDN博客https://blog.csdn.net/2401_88433210/article/details/146056171?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

1. 时间转换

        点进去直接做题:

时间转换_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/c4ae7bcac7f9491b8be82ee516a94899?tpId=107&&tqId=33304&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include<stdio.h>
int main()
{int seconds, h, m, s;scanf ("%d",&seconds);h=seconds/3600;m=(seconds%3600)/60;s=(seconds%3600)%60;printf("%d %d %d",h,m,s);
}

解析:非常简单的一道找规律的题,注意格式的要求

2.总成绩和平均分计算

        点进去直接做题:

总成绩和平均分计算_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/0fa5132c156b434da4347ad051c4be22?tpId=107&&tqId=33305&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include<stdio.h>
int main() {//三科成绩double score[3] = {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;
}

解析:非常简单的一道题,不会说明前几天的题,你没有好好做。

        这个题也可以用for循环边读边计算,自己可以尝试尝试,不懂的评论区里留言

3.KiKi和酸奶

        点进去直接做题:KiKi和酸奶_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/c7721f3a1b1a47a783974453e82cadbb?tpId=107&&tqId=33311&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

参考代码:

#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>0)printf("%d\n", n-m/h-1);elseprintf("%d\n", n-m/h);}return 0;}

解析:

1. 注意多组输入

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

4.发布信息

        点进去直接做题

发布信息_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/20e59d0f388448c68f581b9d3ca66049?tpId=107&&tqId=33312&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include<stdio.h>
int main()
{puts("I lost my cellphone!");return 0;
}

解析:不会的话.......回家把孩子 (开个玩笑)。

5. 输出学生信息

        点进去直接做题:

输出学生信息_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/8e94458049eb4e838f711bbd1be0045e?tpId=107&&tqId=33313&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>int main(){printf("Name    Age    Gender\n");//注意四个空格 和换行printf("---------------------\n");printf("Jack    18     man\n");//注意五个空格 对齐return 0;
}

 解析:和上面题一样,主要是锻炼大家的速度和细节(得多写)。

6.进制A+B

        点进去直接做题

进制A+B_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/6187581174ac48278ca3bccf8d534897?tpId=107&&tqId=33315&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include<stdio.h>
int main(void)
{int a,b,result;scanf("%x %o",&a,&b);//注意怎么输入十六进制和八进制result=a+b;printf("%d",result);return 0;
}

 解析:

        1. 首先要理解十进制、十六进制、八进制只是一种数据的表示形式,不是数据的存储形式。

        2. 不同格式的数据的输出在C语言中有不同的格式指定,比如:%x是十六进制格式,%o就是八进制格式。

        3. 不同进制的数据存放都整形变量中都是整形值,直接计算就行,计算交给计算机。

7.网购

        点进去直接做题:

网购_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/5d7dfd405e5f4e4fbfdff6862c46b751?tpId=107&&tqId=33318&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:


代码一:
#include<stdio.h>int main(){//获取输入double price;int m,d,c; //month,day,couponscanf("%lf%d%d%d",&price,&m,&d,&c);//计算价格并输出if(m == 11 && d == 11){ //双十一//打七折后再计算是否有优惠券price = (price * 0.7) - (50 * c);  // c为0则50*0=0,c为1则50*1=1} else if(m == 12 && d == 12){ //双十二//打八折后与上面同理price = (price * 0.8) - (50 * c);}//输出最后价格printf("%.2lf\n",(price > 0 ? price : 0.0));return 0;
}代码二:
#include<stdio.h>int main()
{double price = 0.0;int month = 0;int day = 0;int flag = 0;scanf("%lf %d %d %d", &price, &month, &day, &flag);if (month == 11 && day == 11){price = price * 0.7 - 50.0*flag;}else if (month == 12 && day == 12){price = price * 0.8 - 50*flag;}if (price < 0){printf("0.00\n");}else{printf("%.2lf\n", price);}return 0;
}

解析:

        把题目意思搞懂,很简单的一道题,注意细节

8.争夺前五名

        直接点进去做题

争夺前五名_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/cd052308a1c44a88ad00255f312c3e14?tpId=107&&tqId=33320&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

//代码一:自己亲自实现排序
int main() {int n, temp;scanf("%d", &n);int m[n];for (int i = 0; i < n; i++) {scanf("%d ", &m[i]);}//冒泡排序for (int j = 0; j < n; j++) {for (int k = 0; k < n; k++) {if (m[j] > m[k]) {temp = m[j];m[j] = m[k];m[k] = temp;}}}printf("%d %d %d %d %d", m[0], m[1], m[2], m[3], m[4]);return 0;
}//代码二:使用库函数qsoort#include <stdio.h>int cmp_int(const void* e1, const void*e2)//比较函数{return *(int*)e1 - *(int*)e2;}int main(){int n = 0;int score[40] = {0};scanf("%d", &n);int i = 0;for(i=0; i<n; i++){scanf("%d", &score[i]);}//对所有数字排序int j = 0;//使用库函数排序qsort(score, n, 4, cmp_int);for(i=0; i<5; i++){printf("%d ", score[--n]);}return 0;}

解析:

        1. 要学会使用C语言库函数提供qsort函数。

void qort(void* arr[], int len, int n, int cmp);
//解释:要排列数组的起始地址,数组的长度,一个元素对应的字节,一个比较函数

        2. 或者自己实现一个简单的整形数组排序代码。

冒泡排序的动图:(看着代码想,在脑子里模拟一下)

9. 竞选社长

        点进去直接做题:

竞选社长_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/45a30e3ef51040ed8a7674984d6d1553?tpId=107&&tqId=33321&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include<stdio.h>
int main(void)
{char s;int coutA=0,coutB=0;while((s=getchar())!='0')//关键是要看输入符号结束的设定{if(s=='A')coutA++;elsecoutB++;}if(coutA>coutB)printf("A");else if(coutA<coutB)printf("B");elseprintf("E");return 0;
}

解析:

        本题的解法很多,但本质都是一样的就是代码写的不一样,可以扩展自己的思维多写写。


http://www.ppmy.cn/ops/165669.html

相关文章

游戏引擎学习第153天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 目前正在进行的是一个比较大的系统调整&#xff0c;原本预计今天会继续深入这个改动&#xff0c;但实际上在昨天的开发中&#xff0c;我们已经完成了大部分的代码编写&#xff0c;并且运行之后几乎一切都能正常工作&#x…

HCIA-11.以太网链路聚合与交换机堆叠、集群

链路聚合背景 拓扑组网时为了高可用&#xff0c;需要网络的冗余备份。但增加冗余容易后会出现环路&#xff0c;所以我们部署了STP协议来破除环路。 但是&#xff0c;根据实际业务的需要&#xff0c;为网络不停的增加冗余是现实需要的一部分。 那么&#xff0c;为了让网络冗余…

【二分查找 寻找首端】P3718 [AHOI2017初中组] alter|普及+

本文涉及知识点 本博文代码打包下载 C堆(优先队列) C二分查找 P3718 [AHOI2017初中组] alter 题目描述 有 n n n 盏灯排成一列&#xff0c;其中有些灯开着&#xff0c;有些灯关着。小可可希望灯是错落有致的&#xff0c;他定义一列灯的状态的不优美度为这些灯中最长的连续…

Webpack Vite 前端高频面试题

&#x1f525; Webpack 高频面试题 1. 什么是 Webpack&#xff1f;它的核心概念有哪些&#xff1f; ✅ Webpack 是一个前端模块打包工具&#xff0c;它可以将JS、CSS、图片、字体等资源打包成优化后的静态文件&#xff0c;提高加载效率。 Webpack 核心概念 Entry&#xff0…

什么是大带宽服务器

什么是大带宽服务器&#xff1f; 在深入探讨大带宽之前&#xff0c;让我们先明确带宽的概念。带宽与我们日常所说的宽带有所不同&#xff0c;宽带是运营商为满足家庭或商业上网需求所提供的服务&#xff0c;而带宽则特指数据的传输速度&#xff0c;尤其是上行速度。大带宽服务…

浅谈时钟启动和Systemlnit函数

时钟是STM32的关键&#xff0c;是整个系统的心脏&#xff0c;时钟如何启动&#xff0c;时钟源如何选择&#xff0c;各个参数如何设置&#xff0c;我们从源码来简单分析一下时钟的启动函数Systemlnit&#xff08;&#xff09;。 Systemlnit函数简介 我们先来看一下源程序的注释…

第6关:牛牛鱼缸-附加题

任务描述 本关任务&#xff1a;问题描述&#xff1a;牛牛有一个鱼缸&#xff0c;鱼缸里面已经有n条鱼&#xff0c;每条鱼的大小为fishSizei&#xff0c;牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸里存在着大鱼吃小鱼的定律。经过观察&#xff0c;牛牛发现一条鱼A的大小为另外一条鱼…

基于JSP和SQL的CD销售管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;CD销售管理系统当然不能排除在外。CD销售管理系统是在实际应用和软件工程的开发原理之上&#xff0c;运用Java语言、JSP技术以及SSM框架进…