【C++】
文章平均质量分 90
C/C++学习、工作、教学专栏
吉大秦少游
吉林大学硕士,研究兴趣为芯片数字设计
展开
-
windows的system()指令
windows编程或者C++编程中经常用到system()指令,常用的几个梳理如下:system("pause"); // 暂停system("shutdown /s"); //关机system("shutdown /a"); //取消关机system("C:\\user\\desktop\\1.jpg"); //打开文件system("cls"); //清空调试窗口system("color 24"); //设置调试窗口和字体颜色,窗口颜色是2,绿色;字体是4,红色/*0 = 黑色 8 =原创 2020-06-19 23:40:49 · 2658 阅读 · 0 评论 -
C++相比C,多了什么?
C++相比C,多了以下几点内容:面向对象编程;范式编程;STL模板库高版本的C++有何好处或者优势呢?比如说:int x=0;switch(a){……}// x依旧存在而在C++11,或者C++17中,可以这样写switch(int x=0;a){……}// x不存在...原创 2020-06-19 19:40:29 · 2071 阅读 · 0 评论 -
Python练习题014:利用条件运算符的嵌套完成多重判断
题目利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。分析方式1当然是最简单的if else判断;方式2可以是紧凑型的条件表达式,如代码1;方式3是C++流行的的三目条件运算符,如代码2实现代码1n=int(input("请输入学生成绩:"))print("A" if n>=90 else ("B"...原创 2019-05-22 00:14:29 · 4925 阅读 · 0 评论 -
c++ 保留有效数字和小数位
使用前需添加头文件#include 一、保留n位有效数字采用四舍五入方式。int main(){ double a = 3.141564; cout << setprecision(3) << a; // a = 3.14 return 0;}二、保留n位小数采用四舍五入方式。int main(){ double a...原创 2019-05-25 17:33:07 · 4292 阅读 · 0 评论 -
Python练习题025:阶乘
题目题目:求1+2!+3!+…+20!的和。分析这儿道题实现没问题,但是在用代码2实现的时候,发现结果不一致,真是奇怪。但是将代码2的double改为long long int之后,结果就对了……这说明C++的double和long long int是有区别的,即使是在整数计算的时候都是有区别的。实现代码1 Pythondef jiecheng(n): js=1 f...原创 2019-05-25 16:55:27 · 1660 阅读 · 0 评论 -
Python练习题024:分数相加
题目题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。实现C++#include <iostream>using namespace std;int main(){ float a=2.0,b=1.0,sum=0; for(int i=0;i<20;i++){ sum+=a/b; float tem...原创 2019-05-24 23:29:10 · 2173 阅读 · 0 评论 -
Python练习题023:打印菱形
题目题目:打印出如下图案(菱形):实现代码1:pythonn=int(input("Please input the num:"))for i in range(int(n/2)+1): print(" "*(int(n/2)-i),end=" ") print("*"*(2*i+1))for i in range(int(n/2)): print(" "...原创 2019-05-24 23:14:45 · 1268 阅读 · 0 评论 -
Python练习题 009:水仙花数
题目【Python练习题 009】 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。代码代码1:pythonimport mathfor i in range(100,1000): x=math.floor(i/100) y=math.floor((...原创 2019-05-21 15:51:08 · 1680 阅读 · 0 评论 -
Python练习题 008:打印101-200之间的所有素数
题目【Python练习题 008】判断101-200之间有多少个素数,并输出所有素数。分析很经典的简单题了,从2~sqrt(i)+1逐个验证。这里需要注意的是必须是sqrt(i)+1,如果比这个小,可能会出现错误。实现代码1:pythonimport mathfor i in range(100,200): a=True for j in range(2,int(...原创 2019-05-21 15:50:53 · 4775 阅读 · 4 评论 -
Python练习题 006:输出九九乘法表
题目【Python练习题 006】 输出九九乘法表分析比较容易实现,由于不需要库的支持,无论采用什么语言。实现代码1:pythonfor i in range(1,10): for j in range(1,i+1): print("{}*{}={}".format(j,i,i*j),end=' ') print('')代码2:C++#...原创 2019-05-19 23:17:07 · 1461 阅读 · 0 评论 -
Python练习题 003:完全平方数
题目【Python练习题 003】一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?分析代码1是常规思路,代码2是另一种解法。代码1利用math.floor()向下取整函数来判断sqrt()之后是不是整数,从而判断是不是完全平方数。代码2很简洁。实现代码1import mathfor i in range(1000): x=ma...原创 2019-05-19 21:46:04 · 2609 阅读 · 0 评论 -
Python练习题 002:奖金计算
题目【Python练习题 002】企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,...原创 2019-05-19 16:32:26 · 1793 阅读 · 1 评论 -
Python练习题 001:4个数字任取3个且互不相同
题目Python实现:有四个数字1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?分析思想:思路比较容易,只需要逐个遍历。遍历的时候注意十位数字不能与百位数字相同,各位数字不能与前两者相同即可。Python:思路虽然如此,涉及到具体实现时,有所不同。Python的思路可以是将数字建成一个列表,然后依次弹出,为了保证数字不会重复,可以将弹出后所剩的列表在后面遍历使用,这样就...原创 2019-05-19 12:01:43 · 4417 阅读 · 0 评论 -
Python练习题026:递归
题目题目:利用递归方法求5!。分析递归的核心在于递归基例的确定和递归链条的编写实现Pythondef jiecheng(n): if n==1: return(n) #递归基例 else: return(n*jiecheng(n-1)) #递归链条print(jiecheng(5))C++#include &l...原创 2019-05-25 17:43:18 · 2466 阅读 · 0 评论 -
Python练习题013:分解质因数
题目将一个正整数分解质因数。例如:输入90,打印出90=233*5。分析将需要分解的数字从2开始遍历,则分解的结果都会是质数。需要分解的数字是每一次上次分解之后的结果。比如,90有质因数2,之后用45分解质因数,会得到15,15再去分解质因数。实现Python实现n=int(input("请输入需要分解的数字:"))print("{} =".format(n),end=' ')...原创 2019-05-21 23:58:52 · 18421 阅读 · 0 评论 -
面向对象编程中多态的快速理解
1,函数重写回顾:父类中被重写的函数依然会继承给子类;子类中重写的函数将覆盖父类中的函数;– 重写父类当中提供的函数是因为父类当中提供的这个函数版本不能满足我们的需求,因此我们要重写;– 期望只要是子类对象,则调用子类当中的版本,而不是父类当中定义的函数版本;通过作用域分辨符(::)可以访问到父类中的函数;Child c;Parent* p = &c; ...转载 2019-10-10 09:49:49 · 1658 阅读 · 0 评论 -
C++ STL快速入门
目录stringstring的IO操作处理string中的字符vectorsetlistmap在数月之前的机试中第一次体验到STL的威力,因为自己本来一直在用C语言做开发,很多数据结构都是自己造的,比如链表、队列等,第一次接触C++ STL后发现这些数据结构都已经给我提供好了,我直接拿去调用就好了,真是超级方便。最近的项目中也遇到了STL一些容器,所以现在自己好好总...原创 2018-11-13 18:57:51 · 316 阅读 · 0 评论 -
Python练习题020:自由落体
题目题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?分析第一次落地单独拿出来,这样后面的落体都是弹起-降落两个阶段,两个阶段加在一块正好是前面弹起或者落地的高度。Python实现时需要注意range(n)是从0~n-1,总共n个数字。由于没有注意,调试出现问题。实现代码1:Pythonh=100sum=...原创 2019-05-23 10:04:39 · 6659 阅读 · 1 评论 -
Python练习题068:数组的数字移动
题目有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数分析假设移动n个后面的数字到前面来,可以将以下过程重复n次:将最后一位取出来,然后从第一位到倒数第二位依次往后移动一位,再把取出来的最后一位放在最前面。实现def listmove(array,n): for i in range(n): tmp=array[len(array)-1]...原创 2019-05-27 15:57:09 · 2017 阅读 · 0 评论 -
Python与C++区别
最近在练习python编程,每碰到一道题目就在思考用两种编程语言如何实现。由于C++可以全面替代C,而且比C更加强大、易用,因此不再考虑用C编程。下面总结一下最近用Python和C的区别:文件结构不同。C++和Python在引用库的时候均需要将库import或者#include,但是在使用标准库的时候,Python不需要引入库。我觉得python应该会默认将库都加入进去,所以代码执行效率要比C...原创 2019-05-23 09:42:32 · 21845 阅读 · 1 评论 -
Python练习题019:完数
题目题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。分析先找到因子,再计算因子之和。需要注意的是不像分解因数,这里源数字是不变的,代码1第一次做的时候i是在变化的,这是个bug。实现代码1:pythonfor i in range(3,1001): sum=0 for j in range(1,i):...原创 2019-05-23 09:23:19 · 3280 阅读 · 0 评论 -
Python练习题018:a+aa+aaa+……
题目题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。实现代码1:pythona=int(input("please input a:"))n=int(input("please input n:"))sum=0tmp=afor i in range(1,n+1): ...原创 2019-05-23 08:57:36 · 6589 阅读 · 0 评论 -
Python练习题040:逆序输出数组
题目将一个数组逆序输出。分析Python的好处就是语法很简洁,做起来比想起来还要容易。如果用C++,当然也可以逆序输出,或者直接交换。实现利用[::-1]a=[1,2,3,4]print(a[::-1])交换对应位置的值a=[1,2,3,4]for i in range(len(a)/2): a[i],a[len(a)-1-i]=a[len(a)-1-i],a[i]...原创 2019-05-27 10:47:15 · 2417 阅读 · 0 评论 -
素数的四种判断方法、实现及比较
目录定义算法1)直观判断法2)直观判断法改进(2种)3)已知最快的算法实现C++python定义约数只有1和本身的整数称为质数,或称素数。计算机或者相关专业,基本上大一新生开始学编程都会接触的一个问题就是判断质数,下面分享几个判断方法,从普通到高效。算法1)直观判断法最直观的方法,根据定义,因为质数除了1和本身之外没有其他约数,所以判断n是否为质数,根据定义直接判断从2到n-1是否存在...原创 2019-05-26 11:52:40 · 50387 阅读 · 3 评论 -
Python练习题027:递归打印字符串
题目利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。分析注意递归链条和递归基例就好实现Pythondef output(s,l): if l==0: return print (s[l-1]) output(s,l-1) s = input('Input a string:')l = len(s)output(s,l)...原创 2019-05-25 20:23:36 · 1549 阅读 · 0 评论 -
字符数组的3种输入输出
字符数组常用的有3种输入输出形式scanf()和printf():该形式的好处是可以指定输入输出形式; getchar()和putchar():该形式的好处是读入和输出字符时非常方便; gets()和puts():用来读取和输出一行字符时比较方便。注意:gets识别换行符\n作为输入结束,因此scanf完一个整数后,如果要用gets,需要先用getchar接受整数后的换行符;puts用来...原创 2018-12-11 22:03:46 · 3636 阅读 · 0 评论 -
#define和const的区别
这个区别用从几个角度来说:角度1:就定义常量说的话:const 定义的常数是变量 也带类型, #define 定义的只是个常数 不带类型。角度2:就起作用的阶段而言:define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。角度3:就起作用的方式而言:define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避...转载 2018-12-11 15:11:25 · 3734 阅读 · 1 评论 -
C/C++数组初始化的总结
目录数组定义不初始化会被随机赋值数组初始化的几种形式数组初始化为某一固定值memset(数组名,值,sizeof(数组名))fill(begin(),end(),value)以前刚开始学数组初始化,一直都没搞太清楚,包括参加PAT考试,直到看了胡凡的《算法笔记》,逐渐清晰,是这样的: 数组定义不初始化会被随机赋值 因此如果数组的所有元素在下面没有逐一赋值,但是又会...原创 2018-12-11 16:19:15 · 26832 阅读 · 6 评论 -
C++ vector的用法(整理)
vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include<vector>;一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合...转载 2018-11-11 10:59:13 · 361 阅读 · 0 评论 -
关于ios::sync_with_stdio(false);的最好文章
在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中很不错,...转载 2018-11-13 10:21:15 · 332 阅读 · 0 评论 -
从C++ int类型的变量范围谈起
C/C++中,整型数据是用int来进行定义的,整型的范围就是指int类型所能表示的整数的范围。在32位或64位机器中,int占4个字节,即32位。 int能表示的最大正整数为:0111 1111 1111 1111 1111 1111 1111 1111 (最高位表示符号位,正数符号位为0)对应的10进制数为2^31-1=2147483647,对应的十六进制表示为:0x...转载 2018-11-13 08:40:06 · 2642 阅读 · 0 评论 -
我推荐的一些C\C++书籍
转自:http://blog.jobbole.com/61308/本文由 伯乐在线 - 周昌鸿 翻译自 bert hubert。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。人们常常问我有什么C++和编程的书籍推荐,也许是因为我在PowerDNS有一个关于“编写可读性良好的C++代码”的演讲。这篇博文可以作为我对上述问题的一个回答,同时也包含了一些更广泛的笔记编程。如果你有任何补充或喜欢的书籍...转载 2018-07-13 10:39:44 · 9148 阅读 · 0 评论 -
C++圆形水池类CirclePool——MOOC阚道宏
#include <iostream> using namespace std;class CirclePool // 定义一个圆形水池类CirclePool { private: double price; double r; public: CirclePool(double p1=0,double p2=0){ price=p1; r=p2; ...原创 2018-07-03 14:51:39 · 686 阅读 · 0 评论 -
C++对象数组——MOOC阚道宏
定义了一个对象数组,如下:#include <iostream>using namespace std;class Square //定义一个正方形类{ public: double a; //保存边长的double型数据成员a double Area(){ //求正方形面积的函数成员Area,内联函数 return (a*a); } Square(...原创 2018-07-03 13:37:48 · 457 阅读 · 0 评论 -
模拟银行存款账户管理的C++程序——MOOC阚道宏
程序由甲乙两个程序员完成,采用面向对象的程序设计方法。甲程序员完成主函数的设计,也就是main.cpp。乙程序员设计类并留出接口。main.cpp#include <iostream>using namespace std;#include <string.h> //插入头文件string.h,声明系统函数strcpy()#include "2.h" //插入头文件...原创 2018-07-02 21:10:40 · 2727 阅读 · 0 评论 -
C++数据分散管理、集中管理、类的程序实例
程序功能:计算圆形、长方形的C++程序 方法:1、采用数据分散管理策略,数据分散交给各个函数来管理;2、采用数据集中管理策略,统一定义公共的变量存放数据;3、引入类和对象方法1程序实例://计算圆形、长方形的C++程序 //采用数据分散管理策略,数据分散交给各个函数来管理 #include <iostream>using namespace std;double RArea(...原创 2018-07-01 22:18:14 · 696 阅读 · 0 评论 -
C++中引用(&)的用法和应用实例
对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的新语言特性,是C++常用的一个重要内容...转载 2018-06-25 18:15:20 · 302 阅读 · 0 评论 -
汉诺塔问题的C++和Python的递归实现
递归实现主要使用函数和分支语句,最重要的思想是区分清楚基例和链条两个部分,类似于数学里面的数学归纳法。C++实现:#include <iostream>using namespace std;void hanoi(int N,char source,char relay,char destination){ //递归函数的定义 if(N==1) //递归终结条件:...原创 2018-06-29 23:40:03 · 863 阅读 · 0 评论 -
初学C++,注释语句
阅读程序。阅读下列C++程序,对每条语句进行注释,说明其作用。#include <iostream> //包含输入输出流头文件,作用是将下面用到的输入输出流函数的头文件包含在内using namespace std; //声明命名空间 std,作用是定义函数和全局变量class CTest //定义类CTest,作用是将程序中的数据和函数进行封装,将可开放给用户的定义...原创 2017-10-08 22:32:03 · 939 阅读 · 0 评论 -
C++ string 操作
C++ 字符串长度:求字符串长度用.size()或者.length() 不要用sizeof()C++删除string最后一个字符的几种方法:#include<iostream> #include<string> using namespace std; int main() { string str; str = ...原创 2018-11-15 15:06:27 · 1647 阅读 · 0 评论