自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 递归——逆波兰表达式

1)一个数是一个逆波兰表达式,值为该数2)"运算符 逆波兰表达式 逆波兰表达式"是逆波兰表达式,值为两个逆波兰表达式的值运算的结果//读入一个逆波兰表达式,并开始计算char s[20];cin>>s;return 0;

2024-03-26 17:38:37 230

原创 指针和字符串

连续调用该函数若干次,可以做到:从str中逐个抽取被字符串delim中的字符分隔开的若干子串。

2024-03-26 17:09:41 412

原创 递归——N皇后

在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n皇后问题等价于在n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一行或同一列或同一斜线上。

2024-03-25 15:42:28 142

原创 指针和二维数组、指向指针的指针

a[i]指向的地址:数组a的起始地址+i X N X sizeof(T)p是指向指针的指针,p指向的地方应该存放着一个类型为T*的指针。a[i](i是整数)是一个一维数组。a[i]的类型是T*

2024-03-25 14:29:45 272

原创 指针和数组

数组的名字是一个指针常量,指向数组的起始地址。T*p 和T p[ ]等价。

2024-03-22 17:09:20 313

原创 递归——汉诺塔问题

古代有一个梵塔,塔内有三个座A,B,C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求输出移动的步骤。

2024-03-22 16:14:25 150

原创 指针作为函数参数

【代码】指针作为函数参数。

2024-03-20 16:37:01 172

原创 指针的运算

(地址p1-地址p2)/sizeof(T)如何访问int型变量a前面的那一个字节?3.指针变量加减一个整数的结果是指针。2.两个同类型的指针变量,可以相减。两个T*类型的指针p1,p2。例:int *p1, *p2;:T*类型的指针地址,指向:地址。T*类型的指针p指向地址n。n是整数类型的变量或常量。4.指针变量可以自增,自减。p是一个T*类型的指针。的指针变量,可以比较大小。地址p1地址p2,:整数类型的变量或常量。

2024-03-20 16:02:44 423

原创 递归——求阶乘

递归和普通函数调用一样是通过。

2024-03-19 20:11:25 321

原创 枚举——熄灯问题

有一个由按钮组成的矩阵,其中每行有6个按钮,共五行每个按钮的位置上有一盏灯当按下一个按钮后,该按钮以及周围位置(上下左右)的灯都会改变状态如果灯原来是点亮的,就会被熄灭如果灯原来是熄灭的,则会被点亮。

2024-03-19 18:51:55 756

原创 指针的意义和互相赋值

在C++中,用指针p指向a的地址,然后对p进行加减操作,p就能指向a后面或前面的内存区域,通过p也就能访问这些内存区域。不需要通过变量,就能对内存直接进行操作。通过指针,程序能访问的内存区域就不仅仅只限于变量所占据的数据区域。// 类型不匹配,编译出错。// 类型不匹配,编译出错。//编译能过,但运行可能出错。int n=*pc;使得pc 指向变量ch1。使得pc指向变量ch2。

2024-03-14 19:10:03 391

原创 指针的基本概念和用法

类型名 * 指针变量名;int *p;//p是一个指针,变量p的类型是int *char *pc;//pc是一个指针,变量p的类型是char *float *pf;//pf是一个指针,变量p的类型是float *T * p;//T可以是任何类型的名字,比如int,doublep的类型是:T**p的类型是:T通过表达式*p,可以读写从地址p开始的sizeof(T)个字节*p等价于存放在地址p处的一个类型的变量简介引用运算符sizeof(T*)

2024-03-14 18:47:16 433

原创 编写一个判断子串的函数

如果s2是s1的子串,返回其在s1中第一场出现的位置。空串是任何串的子串,且出现位置为0。如果s2不是s1的子串,返回-1。例题:编写判断子串的函数。

2024-03-12 17:28:03 391

原创 枚举——称硬币

有12枚硬币,其中有11枚真币和1枚假币。假币和真币重量不同,但不知到假硬币比真硬币轻还是重。现在,用一驾天秤称了这些币三次,告诉你称重结果,请你找出假币并且确定假币是轻是重(数据保证一定能找出来)。对于每一枚硬币先假设它是轻的,看这样是否符合称重结果。如果符合,即解决问题。如果不符合,就假设它是重的,看是否符合称重结果。把所有硬币都是一遍,一定能找到特殊的硬币。

2024-03-11 17:15:03 342

原创 字符串库函数

/拷贝src到dest。//s2拼接到s1后面。//不算结尾的‘/0’strlen函数的执行是需要时间的,且时间和字符串的长度成正比。应取出s的长度存放在一个变量里面,然后在循环的时候使用该变量。每次循环,都调用strlen函数,这是效率上的很大浪费。

2024-03-08 14:57:49 336

原创 枚举——生理周期

人有体力、情商、智商的高峰日子,它们分别每隔23天、28天和33天出现一次。给定三个高峰出现的日子p,e和i(不一定是第一次高峰出现的日子),再给定另一个指定的日子d,你的任务是输出日子d之后,下一次三个高峰落在同一天的日子(用距离d的天数表示)。例如:给定日子为10,下次出现三个高峰同一天的日子是12,则输出2。输入四个整数:p,e,i和d。p,e,i分别表示体力、情感和智力高峰出现的日子,d是给定的日子,可能小于p,e或i。从给定日子起,下一次三个高峰同一天的日子(距离给定日子的天数)

2024-03-03 19:47:01 336

原创 输入字符串

读入一行(行长度不超过bufSize-1)或bufSize-1个字符到buf,自动添加‘\’回车换行符不会写入buf,但是会从输入流中去掉。//或cin.getline(line,10);读入最多9个字符到line。回车换行不会写入buf,但是会从输入流中去掉。cin>>line;//若输入“12345”,则数组越界。若输入“12345”,则会导致数组越界!读入一行,自动添加‘\0’

2024-03-03 18:45:15 444

原创 枚举——完美立方算法

四重循环枚举a,b,c,d,a在最外层,d再最里层,每一层都是从小到大的枚举,a的枚举范围【2,N】,b范围【2,a-1】,c范围【2,a-1】,d范围【2,a-1】理论b,c,d三个数字取值范围可以取相同,程序同样可以计算,但如果将c,d的取值范围改为。当两个完美立方等式中的a值相同,则b的值小的优先输出、仍相同则c值小的优先输出、再相同则d值小的先输出。编写一个程序,对任给的正整数N(N<=100),寻找所有的四元组(a,b,c,d),使得。,其中a,b,c,d大于1,小于等于N,且b<=c<=d.

2024-03-02 19:31:55 521

原创 了解字符串

3.string对象。string是C++标准模板库里的一个类,专门用于处理字符串。1.用双引号括起来的字符串常量,如“CHINA”,“C++ program”。2.存放于字符数组中,以'\0'字符(ASCII码为0)结尾。

2024-03-02 15:33:53 352

原创 理解位运算

对于有符号数,如long,int,short,char类型变量,在右移时,符号位(即最高位)将一起移动,并且大多数C/C++编译器规定,将参与运算的两操作数各对应的二进制位进行异或操作,即只有对应的两个二进制不相同时,结果的对应二进制位才是1.否则为0。将参与运算的两操作数各对应的二进制位进行或操作,只有对应的两个二进制都为0时,结果的对应二进制才是0,否则为1。实际上,左移一位,就等于乘以2,左移n位就等于是乘以2的n次方。操作,只有对应的两个二进位均为1时,结果的对应二进制位才为1,否则为0.

2024-02-27 23:02:33 1103

原创 库函数和头文件

int tolower(int c) 如果c是一个大写字母,则返回对应小写字母。int toupper(int c) 如果c是一个小写字母,则返回对应大写字母。double cos(double x) 求x(弧度)的余弦。int isalnum(int c) 判断c是否是一个数字或字母。int islower(int c) 判断c是否是一个小写字母。int isupper(int c) 判断c是否是一个大写字母。int isalpha(int c) 判断c是否是一个字母。

2024-02-27 19:04:41 477

原创 递归初步学习

递归函数需要有终止条件,否则就会无穷递归导致程序无法终止甚至崩溃。一个函数,自己调用自己,就是递归。求斐波那契数列的第n项。

2024-01-27 15:44:30 393

原创 函数(2)

数组首地址+i×N×sizeof(a[0][0])+j×sizeof(a[0][0])函数的形参是实参的一个拷贝,且形参的改变不会影响到实参(除非形参类型是数组或引用)。C/C++程序从main函数开始执行,执行到main中的return则结束。数组作为函数参数时,是传引用的,即形参数组改变了,实参数组也会改变。必须要写明列数,编译器才能根据下表算出元素的地址。形参数组的首地址就是实参数组的首地址。不用写出数组的元素个数。类型名 数组名[ ]

2024-01-27 15:19:39 382

原创 函数(1)

函数”可以将实现了某一功能,并需要反复使用的代码包装起来,形成一个功能模块(即写成一个“函数”),那么当程序中需要使用该项功能时,只需要写一条语句,调用实现该功能的“函数”即可。不同的程序员可以分别写不同的函数,拼起来形成一个大程序。返回值类型 函数名(参数1类型 参数1名称, 参数2类型 参数2名称......)语句组(即“函数体”)如果函数不需要返回值,则“返回值类型”可以写“void”

2024-01-14 16:14:22 852

原创 数组之二维数组

a[0][0]是数组中地址最小的元素。如果a[0][0]存放在地址n,则a[0][0]存放在地址n,则a[i][j]存放地址就是。第i行的元素就是 a[i][0]、a[i][1]......a[i][M-1]。第j列的元素是,a[0][j]、a[1][j]......a[N-1][j]。T a[N][M];a[0],a[1]都可以看做是一个一维数组的名字,可以直接当一维数组使用。eg:a[i][j]//访问第i行第j列。数组T a[N][M] 每一行都有M个元素。数组名[行下标][列下表]

2023-09-21 18:49:42 208

原创 数组的越界

数组元素的下标,可以是任何整数,可以是负数,也可以大于数组的元素个数。数组越界的程序,用某些编译器编译后可能可以正确运行,换一个编译器编译后就运行错误。用变量作为数组下标时,不小心会导致数组越界(变量下标值变为负数,或者太大)a[10]=100;均可能导致程序运行出错。因为可能写入了别的变量的内存空间,或者写入指令的内存空间。可能引起以外修改其他变量的值,导致程序运行结果不正确。可能试图访问不该访问的内存区域,导致程序崩溃。

2023-09-20 20:22:56 342

原创 数组初始化

1.接受一个证书作为输入,如果输入1,则输出“Monday”,输入2,则输出“Tuesday”......输入7,则输出“Sunday”,输入其他数,则输出“lllegal”。2.已知2012年1月25日是星期三,编写一个程序,输入用“ 年 月 日”表示的一个2012年1月25日以后的期,输出该日期是星期几(星期天输出0)有时候会用一个数组存放一些固定不变的值,以取代复杂的程序分支结构。只给a[0]~a[4]五个元素赋值,而后5个元素自动赋值0。{ }中的个数据即为各元素的初值,值之间用逗号间隔。

2023-09-20 19:23:52 147

原创 数组常见问题

筛法求素数:把2到n中所有的数都列出来,然后从2开始,先划掉n内所有2的倍数,然后每次从下一个剩下的数(必然是素数)开始,划掉其n内的所有倍数。最后剩下的数,就都是素数。1.设置一个标志数组 isPrime,isPrime[i]的值是1,就表示i是素数。2.划掉k的倍数,就是把isPrime[2*i],isPrime[3*i]...置成0。之间的所有整数去除n,看能否整除。3.最后检查isPrime数组,输出isPrime[i]为1的那些i。接收键盘输入的100个整数,然后将它们按和原顺序相反的顺序输出。

2023-09-12 14:45:43 60

原创 我的创作纪念日

希望 我以后会学到更多的方面c语言只是我跨入计算机的基础,步入大二的我今后会用更多的时间在信息方面,,去了解学习,在大二这个阶段,我的目标是熟练操作系统,数据库已经html,css每一个明天都将比每一个 今天更优秀。现在是2023年9月12日13:59:15。因为以下三点从此开启了这个账号。

2023-09-12 14:04:13 17

原创 初学 认识数组

其中“元素个数”必须是常量或常量表达式,不能是变量,而且其值必须是正整数。数组名a代表数组的地址,假设为p,则变量a[i]的地址就是p+i*sizeof(int)表达式“sizeof(a)”的值就是整个数组的体积,即N x sizeof(T)。名字为a的数组,有100个元素。数组里的元素都有编号,元素的编号叫下标。数组是可以用来表达类型相同发元素的集合,集合的名字就是数组名。数组的下标从2开始,N个元素的数组,下表从0至N-1。数组a有N个元素,每个元素都是一个类型为T的变量。

2023-09-11 11:15:02 21

原创 输入数据的处理

Windows系统下,不停输入两个整数再敲回车,则不同输出他们的和,直到在单独一行输入Ctrl+Z然后回车,程序就会结束(单独一行的Ctrl+z表示输入结束)可以将测试数据存入文件,然后用freopen将输入有键盘定向为文件,则运行程序是不再需要输入数据了。cin>>m>>n...表达式的值,在成功读入所有变量时为true,否则为false。scanf(...)表达式的值为int,表示成功读入的变量个数。scanf(...)值为EOF(即-1)则说明输入数据已经结束。

2023-09-08 14:35:33 55 2

原创 break语句和continue语句

如果两个不同的正整数,他们的和是他们积的因子,就称这两个数为兄弟数,小的为弟数,大的称为兄数。先后输入正整数n,m(n

2023-09-06 13:20:12 111 1

原创 while循环和do while循环

并非到达指定次数,而是满足某条件时停止循环,适合用while语句来实现循环while(表达式){语句组1.判断“语句组”是否为真,如果不为真,则转4.2.执行“语句组”3.转1.4.while语句结束,从while语句后面的语句继续执行。

2023-08-27 13:23:37 75

原创 循环结构——for循环(下)

for语句括号里面的“表达式1”,“表达式2,”,“表达式3”任何一个都可以不写,甚至可以全部不写,但是“;可以用break语句从for(;

2023-07-07 09:34:37 71 2

原创 循环结构——for循环(上)

将循环控制变量定义在“表达式1”中,则其只在这一个for语句的内部起作用,可以不用担心循环控制变量重名。,是循环条件表达式,用来判断是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环),作为循环的调整,例如使循环变量增值,它是在执行完循环体(语句组)才进行的)计算“表达式2”,若结果为true,则执行“{ }”中的语句组,然后转到。若为false,则不再执行“{ }”中的语句组,for语句结束,转到。一般用于将某段代码(语句组)重复执行若干次。,一般为设置初始变量,只执行一次)

2023-07-01 10:32:29 46

原创 条件分支结构(switch语句)

switch用笔记本在进入某个case分支后,会一直执行到第一个碰到的“break;”,即使这个“break;”是在后面的case分支里面。如果没有碰到“break;”,则会向下执行到switch语句末尾的“}”,包括“default:”部分的语句组也会被执行。“表达式”的值等于哪个“常量表达式”,就执行相应的语句组。都不相等,则执行default的语句组。也可以没有default分支。

2023-06-30 11:16:26 125 1

原创 条件分支结构(if语句)

依次计算表达式1,表达式2...只要碰到一个表达式i为真,则执行语句组i(前面为假的表达式对应的语句组不会被执行),后面的表达式不再计算,后面的语句组也都不会被执行。有时,并非所有的程序语句都要被顺序执行到,会希望满足某种条件就执行这部分语句,满足另一条件就执行另一部分语句。if语句可以没有else if,也可以没有else,也可以都没有。在一条if语句的某个分支(语句组)里,还可以再写if语句。在一条if语句的某个分支(语句组)中,还可以再写if语句。若所有表达式都为假,则执行语句组n。

2023-05-28 16:10:00 181

原创 计算球的体积

输入为一个不超过100的非负实数,即球半径,类型为double。:对于半球为r的球,其体积的计算公式为V=4/3*πr。:输出一个实数,即球的体积,保留到小数点后2位。eg,输入:4 输出:267.95。这里取π=3.14,现给定r,求V。

2023-05-23 02:45:00 543

原创 强制类型转换运算符以及运算符优先级

类型名本身就是一个运算符,叫“强制类型转换运算符”用于将操作数转换为指定类型。printf("%d,%d",a+++b,a)会输出什么呢?低 = += -= *= /= %=可以用()改变运算顺序,如a*(b+c)。勤用括号以避免优先级错误。高 ++ --!1.强制类型转换运算符。2.部分运算符的优先级。,而非a+(++b)

2023-05-22 19:33:29 1302 2

原创 关系运算符,逻辑运算符和逻辑表达式

exp1&&exp2:如果已经算出表达式exp1为假,那么整个表达式的值肯定为假,那么表达式exp2就不需要在计算了。=)(大于>)(小于<)(大于等于>=)(小于等于<=)比较结果是bool类型,成立则为true,反之为false。逻辑运算符用于表达式的逻辑操作,有&&(与),||(或),!值为真(或非0),结果为false,exp值为false(0),结果为true。当且仅当exp1和exp2的值都为真(或非0)时,结果为true。当且仅当exp1和exp2的值都为假(或0)时,结果为fales。

2023-05-21 11:56:47 57 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除