C#
张嘴C语言
每天都笑嘻嘻
展开
-
将输入的字符串中小写字母改为大写字母
a~z(0x61~0x7a),用十进制来说就是(97~122)。大写字母是(0x41~0x5a);我们直到小写字母到大写字母ASCII码值想隔32,用十六进制为(0x20),大小写字母范围分别是。不用scanf是因为scanf遇到空格和回车会结束输入。原创 2023-10-27 10:00:00 · 1189 阅读 · 0 评论 -
C语言矩阵转置
我用sizeof()函数求数组元素总个数,再求出每一行的和每一列的元素个数,用来控制循环。原创 2023-10-25 10:56:26 · 1157 阅读 · 0 评论 -
逗号表达式
逗号表达式括号里的优先级是自左向右,最后一个值为最终的结果。原创 2023-10-21 12:42:57 · 514 阅读 · 0 评论 -
联合体(共用体)
因为u1中数据类型最大的占4个字节,所以u1大小为4字节。因为u2中有一个字符串数组,最大为5字节,但是对齐的话得对齐最大数据类型的整数倍。这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间。当最大成员大小不是最大对齐数的整数倍的时候,就要对。联合也是一种特殊的自定义类型。齐到最大对齐数的整数倍。至少是最大成员的大小。原创 2023-10-19 08:00:00 · 198 阅读 · 0 评论 -
C语言枚举
例如在你定义的枚举类型中,你只定义纯色(红,黄,蓝),那么我们要描述一个物体什么颜色时,也只能说什么颜色。不能说淡黄色,浅蓝色,这些。这样做的目的是为了代码能更好维护,同时,我们枚举多个枚举常量,可以一次性写到一起,也便于调试。枚举顾名思义就是一一列举。把可能的取值一一列举。枚举成员都是具有相同属性的,比如枚举颜色:红色,蓝色,黄色,绿色,等等。我们用逗号把他们分隔开。枚举的作用首先就是范围了。虽然我们用define同样可以达到目的,但是显然前者更加严谨,更加使用方便。原创 2023-10-18 16:50:56 · 47 阅读 · 0 评论 -
C语言找水仙花数
1.引入#include<stdio.h>void main(){//水仙花数 十进制数的每一位的三次幂加起来等于十进制数 int a = 153; int x = a / 100;//求百分位上的数 int y = a % 100 / 10;//求十分位上的数 int z = a % 100 % 10;//求个位上的数 if (x * x * x + y * y * y + z * z * z == a) { printf("是水仙花数"); } else {原创 2023-10-18 10:14:36 · 128 阅读 · 2 评论 -
C语言实现strcmp()函数
并且strcmp函数的参数是常量字符串,所以我们给参数加上const。assert()这个库函数是断言,当str1不为空指针,str2也不为空指针那么就正确执行。我们从下面代码可以看出strcmp()函数返回值为一个整数,当两个字符串相等时返回值为0,不相等时前面字符串大于后面字符串,结果为1,否则为-1;原创 2023-10-16 20:45:15 · 195 阅读 · 0 评论 -
结构体学习
我们用C语言中通常都是用关键字来定义类型变量。例如我们的整型变量,int book;是用整型关键字定义出来的。同样的,struct book同样是一个类型,不过我们叫他结构体。我认为的结构体的作用,无外乎是将一些毫无关系的变量整合到一起,来达到产生联系。整合到一起就是把它封装在结构体中。通过结构体,我们将姓名,年龄,性别这些本来毫不相关的变量,把它封装在结构体中,让别人更加清楚的描述一个物体。被封装在结构体中的变量可以是整型变量,数组,指针,结构体。struct是结构体关键字。原创 2023-10-23 08:00:00 · 326 阅读 · 0 评论 -
C语言输入一个无符号正整数,输出该数每位加起来的和
我们知道,对一个整数除10求余数,得到的是最末尾那个数字,例如1234%10=4,而我们要等到1、2、3、4就要对1234取余四次。写成可能好理解一点。原创 2023-10-08 14:56:32 · 551 阅读 · 0 评论 -
将一个字符串逆序,用递归,不得用库函数
我先用自己的想法写出一个,就是控制数组下标交换内容。想了想还是这个要清晰一点。原创 2023-10-08 11:22:51 · 49 阅读 · 0 评论 -
C语言打印二进制数的奇数位和偶数位
再根据每一位之间间隔为2,这样我们就可以分离奇数位和偶数位。要打印每一位对应内容,我们可以通过&运算符,1&1==1;我们知道,二进制是从0~31一共32位。而奇数位是从0~30位开始,偶数位是从1~31开始。原创 2023-10-08 09:24:20 · 118 阅读 · 0 评论 -
C语言求两个数的二进制数有几位不相同
举个例子:16,12,这两个整数的二进制数分别为10000 01100,两个数异或得到11100。再将11100减1,为11011,再相与,11000,这样就会将异或中最右边的1慢慢消掉,直到temp==0,退出循环。我采用的是异或来求不同位,异或是相同为0不同为1。原创 2023-10-08 08:58:46 · 76 阅读 · 0 评论 -
C语言十进制数求对应二进制中1的个数
上面这种方法只能输入整数,对于浮点数,只能求其中的整数部分的1。上面的方法采用的是移位与1,从最右边开始移位,与1,如果数的第i位是1,与1与之后结果就是1,由count记录1的个数,总共移位32次。int类型是4个字节,所以是32位。原创 2023-10-07 10:46:09 · 360 阅读 · 0 评论 -
C语言冒泡排序+数组传参问题
通过flag的变化,确定经过一趟排序之后,有没有交换,如果有,那么flag=0,下一趟还要进行。如果flag值为1,就说明已经是升序,没必要再排下去。这样会将效率提高一些。我们从输出结果来看,+1之后,增加四个字节。arr=&arr[0],但是&arr+1,增加了24个字节(数组长度*每个元素所占大小);总结:除了sizeof(arr)和&arr,数组名表示的是整个数组,其他情况都表示的是数组首元素地址。对于上面一个算法来说,如果一开始就是升序,那么它还是继续排完,效率很低。这里再说一下传参的问题。原创 2023-10-05 17:08:02 · 70 阅读 · 0 评论 -
如何理解二维数组?
如int arr[]={1,2,3,4};但是int arr[][]={1,2,3,4};就不行,必需确定大小。如arr[][4]={1,2,3,4};我们可以看到每个一维数组的首地址,都相隔16,arr[0][4]到arr[1][4]相隔16 , 一个int类型数据为4个字节,有四个,所以隔着16。不仅如此,我们看到brr[3][4],我们可以通过大括号,确实第几行第几列放的是什么。arr[3][4]这个数组给我们的感觉就是由编号0、1、2 为名,且长度为4的三个一维数组连续存放在一起。原创 2023-09-28 11:09:51 · 51 阅读 · 0 评论 -
C语言实现斐波那契函数
采用循环的方式计算速度会快很多。上面这种是采用递归的方式。原创 2023-09-27 19:23:54 · 306 阅读 · 0 评论 -
用递归方式实现n的阶乘
【代码】用递归方式实现n的阶乘。原创 2023-09-27 18:17:55 · 309 阅读 · 0 评论 -
strlen()和sizeof()区别
strlen()和sizeof()都会取决于你对数组给多大空间.例如:char str[20],sizeof()更看重[]中的数。建议:我们在计算字符串长度时最好用strlen();计算字符列表长度时最好用sizeof()。原创 2023-09-27 10:43:50 · 49 阅读 · 0 评论 -
输入数字,间隔打印
函数递归:调用自身的编程技巧叫做递归。用少量程序就可以描述解题过程的重复计算。大大减少了代码量,递归的思考方式在于:大事化小。1.存在限制条件,当满足这个条件之后,递归便不再继续。2.每次递归调用后会越来越接近这个限制条件。原创 2023-09-26 10:40:29 · 53 阅读 · 1 评论 -
printf函数你真的了解吗?
printf()函数是输出函数,返回值是打印字符的个数。43是两个字符,返回值是2,此时变成printf("%d",printf("%d",2));继续执行printf()函数,屏幕会打印2,而2是一个字符,返回值就是1,此时printf("%d",1);屏幕显示432,继续执行printf()函数,屏幕显示4321。可以知道,一个汉字占2个字符。原创 2023-09-25 22:43:29 · 47 阅读 · 1 评论 -
函数声明与函数的定义,两者有必要分开吗?
举个例子:如果我们有一个团队,负责完成一个计算器功能实现。一个人写加法函数,一个人写乘法函数,等等,总之分开完成会比一个人做快一些是这个意思,那么我们不可能同时就在一个c程序里写功能实现的函数,那么。我们在源文件里在添加一个.c文件,里面放函数的声明,在头文件里创建一个.h文件,里面放函数的声明。顺序执行,如果没声明,但是函数定义在函数调用之前,那么可能会出错。但是函数声明,和函数定义分开来讲,是有意义的。这时函数的声明,函数的定义,就起作用了。函数的声明:将写好的函数在使用前声明。原创 2023-09-25 23:27:54 · 215 阅读 · 1 评论 -
输入两个数,将两个变量值交换。两种方法
交换两个变量的值,用指针变量实现。原创 2023-09-24 21:55:11 · 1032 阅读 · 1 评论 -
C语言使用goto语句写关机小游戏
这个程序用到了system()函数,用来控制我们计算机系统的,我们可以按住window键+R,输入cmd打开命令行,输入命令shutdown -s -t 60 回车,计算机就会提示在1分钟后关机,此时我们可以手动输入shutdown -a 回车,阻止计算机关机。最好平时还是使用while、for循环这些。我这里用到的是字符串比较strcmp()函数,当strcmp==0时,两个字符串相等。system()用到的库函数是"stdlib.h"strcmp()库函数是"string.h"原创 2023-09-24 15:13:24 · 213 阅读 · 1 评论 -
猜数字C语言小游戏
上面是编写的game()函数,应为是猜数字,所以我们用系统里的rand()函数,它执行返回后会随机返回一个数,但是是固定的,是伪随机数,大家可以试着输出rand()函数内容,反复执行程序后从头开始就又会一样。对随机数除100求余,余数最大也就99,所以+1,才是从1-100。rand()和srand()函数头文件是"stdlib.h",time()函数头文件是"time.h"。猜数字也讲究技巧:我们可以用二分法来猜,例如,我们先猜50,如果偏大,就猜25,还是偏大就猜12,一半半的猜会比随便猜更快。原创 2023-09-23 23:35:17 · 101 阅读 · 1 评论 -
C语言打印乘法表
需要九个数,所以要一个for循环,区间是[1,9],打印是下三角形形状,每列左边都是从一开始,右边依次是1-9。所以定义一个变量j,让他每次从1开始,与i相乘。如此,打印完之后还要换行,请看代码。原创 2023-09-23 10:12:04 · 64 阅读 · 1 评论 -
将字符从左端,右端,向中间打印
Sleep(1000)是睡眠1000毫秒也就是1秒。strlen()是求字符串长度的。原创 2023-09-21 20:34:45 · 38 阅读 · 0 评论 -
C语言笔记
区别:str1结尾自带一个/0,str1通过printf可以直接编码输出,而str2,无\0,编译器会一直从abc后面找到\0为止,所以出现乱码,此时我们只要在str2[]={'a','b','c','\0'};"A"与'A'不同在于在内存中所占字节数不同,字符串占两个字节(原因是\0算作一个字节),字符一个字节。%c是字符,%s是字符串,%p是地址,%d是数字,%f是浮点型(float),%lf是double型,//p存放a的地址,p是指针变量,*p是找到a,并且可以改变a的值。int b=++a;原创 2023-09-21 19:34:07 · 43 阅读 · 0 评论 -
输入密码登录,输入三次均错误退出程序
strcmp()函数是用于字符串比较的。不能用psswd=="123456"会报错。strcmp()要用到C语言库函数"stdlib.h"。原创 2023-09-21 21:09:26 · 343 阅读 · 0 评论 -
给两个数,求这两个数的最大公约数
假设给定两个数30,20,30%20=10,20%10=0;所以此时两个数的最大公约数为10。利用辗转相除法,两个数求余数,直到余数为0。原创 2023-09-21 22:00:21 · 57 阅读 · 0 评论