C语言每日一练——day_12(最后一天)

news/2025/3/22 22:11:04/

引言

        针对初学者,每日练习几个题,快速上手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/4c49a3a1559141f7a080a48c98cca4cb?tpId=107&&tqId=33411&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>
int main() {int arr[101] = {0};int n = 0;scanf("%d", &n);int i = 0;for (i = 0; i < n; i++) {int m = 0;scanf("%d", &m);arr[m]++;}int x = 0;
scanf("%d", &x);
printf("%d", arr[x]);
return 0;
}

解析:因为n最大是100,所以可以用数组下标对应的位置来代表对应的值,

        当有这个值的时候,对应的位置上加1即可

        最后输出x位置对应的值,就是x值出现的次数。

2.KiKi学程序设计基础 

        点进去直接做题:KiKi学程序设计基础_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/07e75d2b212b4a11b1525863ca3af02c?tpId=107&&tqId=33412&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>
int main() {
//难点:要让转义字符不是转义字符printf("printf(\"Hello world!\\n\");\n");printf("cout << \"Hello world!\" << endl;");return 0;
}

 解析:\n是换行符,\ \n第一个\把\n转义了,所以就可以正常输出\n了。

3.KiKi求质数个数

        点进去直接做题:KiKi求质数个数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/d3a404ee0f8d41f98bf4707035d91086?tpId=107&&tqId=33416&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>
int is_prime(int n) {int i = 0;for (i = 2; i < n; i++) {if (n % i == 0)return 0;}return 1;
}
int main() {int count = 0;int i = 0;for (i = 100; i <= 999; i++) {
//判断i是否为质数if (is_prime(i)) {count++;}}printf("%d\n", count);return 0;
}

 解析:前面几天做过,自己看代码就行。

4.KiKi去重整数并排序

        点进去直接做题:KiKi去重整数并排序_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/f59b914172b94c69a2b29ad0a1d9b1a7?tpId=107&&tqId=33417&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

//方法1
#include <stdio.h>
int main() {int n = 0;int arr[100];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;}}}
//去重-比较n-1对int j = 0;for (i = 0; i < n - 1; i++) {
//把i+1后边的元素往前移动if (arr[i] == arr[i + 1]) {int k = 0;for (k = i; k < n - 1; k++) {arr[k] = arr[k + 1];}n--;i--;}}
//打印for (i = 0; i < n; i++) {printf("%d ", arr[i]);}return 0;
}//方法2:
int main() {int n = 0;int arr[1001] = {0};scanf("%d", &n);int i = 0 ;int m = 0;for (i = 0; i < n; i++) {scanf("%d", &m);arr[m] = m;}for (i = 0; i < 1001; i++) {if (arr[i] != 0)printf("%d ", arr[i]);}return 0;
}

 解析:昨天做过,昨天用的是方法二,这里给出一个方法一。

附加:5.KiKi学结构体和指针 (看不懂没关系,这是数据结构部分的内容)

        点进去直接做题:KiKi学结构体和指针_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/0ab593ca56b1476eb05b1ff848fd7fcc?tpId=107&&tqId=33419&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>
#include <stdlib.h>
struct Node {int data;struct Node* next;
};
int main() {int n = 0;struct Node* list = NULL;struct Node* tail = NULL;//输入结点int i = 0;scanf("%d", &n);for (i = 0; i < n; i++) {int data = 0;scanf("%d", &data);struct Node* n = (struct Node*)malloc(sizeof(struct Node)); //开辟空间n->data = data;n->next = NULL;if (list == NULL) {list = n;tail = list;} else {tail->next = n;tail = tail->next;}}//删除结点int del = 0;scanf("%d", &del);struct Node* cur = list;struct Node* prev = NULL;while (cur) {//找到了if (cur->data == del) {struct Node* pd = cur;//如果删除的是第一个结点if (cur == list) {list = list->next;cur = list;} else {//删除的不是第一个结点prev->next = cur->next;cur = prev->next;}n--;free(pd);} else { //找不到prev = cur;cur = cur->next;}}cur = list;printf("%d\n", n);while (cur) {printf("%d ", cur->data);cur = cur->next;}//释放空间cur = list;while (cur) {del = cur;cur = cur->next;free(del);}return 0;
}

解析:看不懂没关系,当你学到数据结构单链表的时候,可以回过头来看这道题,就非常简单了。

感受:

        从第一天到现在已经做了120道左右的题了,相信你的写代码能力一定有了极大的提升,一起加油吧!

          若您是直接看到这篇博文,可以订阅一下这个专辑,每日一练,快速提升


http://www.ppmy.cn/news/1581237.html

相关文章

自然语言处理|Top-K 采样如何解锁文本生成的多样性?

一、引言 在自然语言处理&#xff08;NLP&#xff09;的文本生成领域&#xff0c;如何从语言模型输出的概率分布中选择下一个词&#xff0c;是决定生成文本质量与多样性的核心问题。语言模型通常会为词汇表中的每个词分配一个概率值&#xff0c;而采样策略则决定了如何基于这些…

[OpenCV】相机标定之棋盘格角点检测与绘制

在OpenCV中&#xff0c;棋盘格角点检测与绘制是一个常见的任务&#xff0c;通常用于相机标定。 棋盘格自定义可参考: OpenCV: Create calibration pattern 目录 1. 棋盘格角点检测 findChessboardCorners()2. 棋盘格角点绘制 drawChessboardCorners()3. 代码示例C版本python版本…

OceanBase 社区年度之星专访:社区“老炮”代晓磊与数据库的故事

2024年年底&#xff0c;OceanBase 社区颁发了“年度之星”奖项&#xff0c;以奖励过去一年中对社区发展做出卓越贡献的个人。今天&#xff0c;我们有幸邀请到“年度之星”得主 —— 知乎的代晓磊老师&#xff0c;并对他进行了专访。 代晓磊老师深耕数据库运维与开发领域超过14…

【问题解决】Postman 测试报错 406

现象 Tomcat 日志 org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation HTTP状态 406 - 不可接收 的报错&#xff0c;核心原因 客…

AFFiNE:下一代开源全能知识库工具,重新定义协作与创作

一、AFFiNE是什么? AFFiNE(发音为 [ə‘fain])是一款集文档编辑、无限白板、数据库管理于一体的开源生产力工具,被开发者誉为“Notion + Miro + Airtable”的终极融合体。其目标是为用户提供隐私优先、高度可定制且功能强大的知识操作系统(KnowledgeOS),适用于个人创作…

bash中如何区分系统命令和自定义函数

在 Bash 中&#xff0c;系统命令和自定义函数可以通过以下几种方式来区分&#xff1a; 使用 type 命令 type 命令可以显示一个命令的类型&#xff0c;帮助区分系统命令、别名、函数、内置命令等。 # 检查系统命令 type ls # 输出&#xff1a;ls is /bin/ls# 检查自定义函数 m…

python力扣42.接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] …

Kotlin标准函数库学习

apply&#xff1a;apply 函数可看作一个配置函数&#xff1a;你可以传入一个接收者&#xff0c;然后调用一系列函数来配置它以便使用。如果提供lambda 给apply 函数执行&#xff0c;它会返回配置好的接收者。 apply 可以用在初始化时&#xff0c;的不断引用的情况。 //原始代…