| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【C语言】初学C语言经典题目(范围广,内容多) -> 正文阅读 |
|
[C++知识库]【C语言】初学C语言经典题目(范围广,内容多) |
目录 前言😄大家好啊,今天带来的是关于学习C语言前期我们比较经典的一些题目,如果对你有帮助的话,记得点赞关注加收藏哦,希望我们能够一起成长与进步💝 下面,让我们开始今天的主题吧!👇 scanf函数的使用🔥先别着急,一开始,我先来简单介绍一下scanf函数,我们都知道scanf函数是用来输入的,比如想输入一个字符,一个数字,一串字符,一串数字等等这些。 但是,我在这里并不是想说scanf怎么去使用,使用的话我们每一个都是会的。之所以放在这里讲的原因是因为在不同编译环境下,scanf可能会出现错误!什么错误呢?来看看简单的代码: 这段代码很简单把,但是在VS2019的编译环境下,我们按CTRL+F5运行一下,看看结果是什么? 直接报错了,错误的原因是什么? 这里说scanf是不安全的,建议考虑使用scanf_s替代。所以这是第一种解决方法。不过不太推荐使用这种方法,scanf_s函数是vs编译器自己提供的函数,非标准C提供的函数,也就是说只有Vs编译器认识 第二种解决方法:在源文件第一行添加:#define _CRT_SECURE_NO_WARNINGS 要想每次都不用手动在第一行添加的话,我们可以在VS安装路径下找到newc++file.cpp文件,忘记路径也没关系,直接搜素胡newc++file.cpp文件。 把上面的那句代码写在里面并保存即可,这样子就不用我们每次都手动自己去添加了! 好了,关于scanf函数的一些问题就在这里说清楚了!正式开始我们的主题把!💗 判断素数🔥这是最开始就很容易频繁接触到的问题,这道题的核心在于素数是怎么判断的(只能被常数1或自己整除,不能被其他整数整除的正整数),以及一些相关的优化,提高效率。整体而言,这道题并不算难💖一起来看看我们的代码吧 这里把判断过程封装成一个函数,便于调用,以100-200之间的数字为例子。来看看我们的运行结果吧 好啦,看看我们的下一个题目吧?? 闰年判断🔥什么是闰年,根据闰年的定义,我们有两种判断方法:
?这里运行只是简单测试一下,不要太过于较真哦 九九乘法表🔥是谁的DNA动了,哈哈。99乘法表这大小从小学就开始接触到了,现在让我们来用代码实现一下吧 在一个有序数组中查找数字🔥给定一个有序数组,让我们在数组中找到某个数字,并且返回下标。对于这这种题,我们可以用二分查找。本题比较基础,是基于有序的数组之上的,我们可以很好利用这一点。当然,遇到不是有序的数组,我们也有对应的方法去解决的,比如先排序,qsort快排,这里并不展开讨论。下面直接敲打代码? 上面有一个小细节,不知道大家注意到了没有,那就int mid = left +(right-left)/2.按理来说,我们可以直接让int mid = (left + right)/2的,但是为什么不这样写呢?想过没有,当left和right都很大的时候,两个很大的数相加起来可能就超出了int类型的范围,所以第一种的方法比较好,能够方法数字超出范围。 N阶乘的值🔥解法一:非递归解法 直接for循环走起来,不过要注意到一点的就是,int ret不能初始化为0,那样都不用算了,0乘以任何数都是0. 解法二:递归解法 递归解法分为两种情况,一种是当n=1时,不用去算,1的阶乘就是1。当n大于1的时候,我们直接采用递归来解决。 计算1!+2!+......+n!🔥另一种做法,比如问我们1!+2!+3++......+10!,直接让我们算到10的阶乘。 当然这是在不考虑时间复杂度的情况之下的,对于刚开始来讲,先不要考虑太多,如果对时间复杂度感兴趣的,也可以看看我之前写过的博客。 两边向中间移动🔥开始之前,先来认识一下Sleep()函数,就是让程序睡眠,比如Sleep(1000)就是睡眠10000毫秒,既1秒 以及//清空屏幕 system("cls"); 感兴趣的可以了解了解,当然,你也可以去找.exe文件玩一玩。 模拟登录操作🔥实际上的登录操作是比较复杂的,这里只是觉得的模拟一下而已,放在这里,是为了告诉大家字符串的比较不能用,而是用strcmp。同时,注意到文件的引用。直接来看看我们的代码及其运行结果 猜数字🔥猜数字,自然要涉及到了随机数的生成,这样用srand()函数及rand()函数配合使用,同时,怎么随机去生成一个数,同时每分每秒都在改变呢?自然是时间,这里引入了时间戳的概念: 打开网站搜索时间戳: 我们还要注意到随机数的范围,可以用%来限制数的大小范围 下面,我们来实现猜数字的代码: 关机程序🔥关机程序在说分支循环中goto就已经说过了,这里再来看一遍我们的代码: 其实要点就在于关机命令shutdouw -s -t以及取消关机命令shutdouw -a 模拟实现strlen()函数🔥这里只说两种方法,其他方法就不展开说明了 解法一:递归实现 解法二:非递归实现 递归实现计算一个数的每位之和🔥如果是1位数的话,直接返回就OK了,两位以上,先去/10然后递归下去解决便可。 说到递归。这自然离不开典型的递归题目:斐波那契数列,所以,下面将要说的就是我们的斐波那契数列数列。? 递归和非递归实现求第n个斐波那契数🔥先来看看斐波那契数列是什么
好啦。接下去就是代码实现,直接进入我们的代码,考虑到实际情况,采用非递归有时候可能时间效率太低,根本就算不出答案,所以这里会给出两种做法,分布是递归和非递归做法 解法一:非递归 解法二:递归 交换数字🔥交换数字并不难,创建一个临时变量嘛,让两个数字交换就行了,这里提出来,是给大家指出一个容易出错的地方,话不多说,我们先来看一个例子。 ?这段代码的逻辑很清晰,就是想让a、b、c从大到小输出嘛,交换封装成一个函数去调用就行了,来,我们看看运行结果是什么: ?结果并没有达到我们预期的效果,这是为什么呢?
?这就是为什么没有交换的原因,我们怎么去改呢?用指针来解决即可 ? ?好啦,问题解决 结束语😄时间过得真快,又到了该说再见的时候了,到这里,这篇博客也到达了尾声,如果对你有帮助的话,那就支持一下吧?? ?? ?🌹 ? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 22:04:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |