基础知识
曦文先生
这个作者很懒,什么都没留下…
展开
-
【必会系列】数组
一维数组一维数组形式:dataType arrayName[index]dataType 数据类型arrayName 数组名称index 下标看起来很陌生是不是?举一个常见的例子你就眼熟了int arr[ 2 ]。原创 2022-04-03 18:53:26 · 885 阅读 · 2 评论 -
【必会系列】函数指针
在基础阶段这东西用的很少很少,你可以不用但是不能不会。用户在定义函数的时候,函数通常会占据一个连续的内存空间,此时的函数便和数组十分相似了,函数的指针是指向函数入口的地址,数组的指针是指向数组首元素的地址。函数指针的定义如下:returnType (*pointerName)(param list);returnType是函数的返回值类型pointerName是指针名称param list是函数参数,这里可以只给出类型不给名称,和函数的用法是一样的例:定义一个求解素数的函数,原创 2022-04-03 12:34:25 · 390 阅读 · 0 评论 -
【必会系列】c语言循环语句
C语言中的循环语句:while、do while、forwhile循环while循环的一般形式为:while(表达式){ 语句块}先计算“表达式”的值,当值为非0时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为非0,继续执行“语句块”一直循环到表达式结果为0则跳出循环。例:打印1-100。#include <stdio.h>int main(){ int i=1; while(i<=100) { ..原创 2022-04-03 12:04:17 · 5966 阅读 · 0 评论 -
【必会系列】Switch详解
C语言中虽然没有限制if的使用次数,但是当进行多个简单条件判断时用if的话就会显得啰嗦,而且else容易出现不匹配,因此对于这种情况我们可以使用switch case。#include <stdio.h>int main(){ int a; printf("Input integer number:"); scanf("%d",&a); if(a==1){ printf("Monday\n"); }else if(a==2)原创 2022-04-02 21:56:20 · 819 阅读 · 0 评论 -
【必会系列】c语言转义字符
转义字符以\或者\x开头,以\开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。对于 ASCII 编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。不过,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下:转义字符 意义 ASCII码值(十进制...原创 2022-04-02 18:18:57 · 3835 阅读 · 0 评论 -
【必会系列】C语言各种变量字节大小
c语言的变量大小在不同的操作环境中是不同的,现在基本都是64位系统,在这里我只讨论64位操作系统中的变量大小。int main(){ printf("short=%d\n", sizeof(short)); printf("char=%d\n", sizeof(char)); printf("int=%d\n", sizeof(int)); printf("float=%d\n", sizeof(float)); printf("double=%d\n", sizeof(double));原创 2022-04-02 18:06:34 · 1398 阅读 · 0 评论 -
厘米换算英尺英寸
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170输出样例:5 6int main(){ double input = 0,temp = 0; scan.原创 2022-03-28 20:59:55 · 281 阅读 · 0 评论 -
阶乘计算升级版
本题要求实现一个打印非负整数阶乘的函数。函数接口定义:void Print_Factorial ( const int N );其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。裁判测试程序样例:#include <stdio.h>void Print_Factorial ( const int N );int main(){ int N; scan原创 2022-03-28 20:29:52 · 665 阅读 · 0 评论 -
【C自建函数】——字符查找my_strstr
字符查找strstr是C语言中 <string.h>中的函数,其作用是在str1中查找与str2相同的部分,若找到相同的字符则返回找到字符的地址,若找不到相应的字符则返回一个空指针NULL。首先我们来看看strstr原来的样子:从结构式中可以看到strstr运用的是字符串指针,而且函数中的指针是用const修饰的(非常的严谨)。接下我们再看看这个函数的功能:跟我在前面开头说的差不多,但是这里有几点要注意:1、如果找到了字符便返回的指针是指向字符串中第一...原创 2022-03-13 10:48:36 · 2685 阅读 · 0 评论 -
【C递归练习】——汉诺塔
汉诺塔是一道十分经典的递归题,一定要会做!这里我们举一个简单的例子,已知现在有A、B、C三座塔,A塔上有6个盘子,B、C没有盘子,现在要求把A上的盘子移动到C上,但是移动的过程中每次只能移动一个盘子,且在移动的过程中在三个坐上始终保持大盘在下,小盘在上,移动的过程中,塔可以相互利用。解题思路:step1:现在我们什么都不管,只想一个问题,如果A塔上的五个盘子我们已经利用C转移到B上的时候是什么样子?step2:接下来我们把A移动到C上step3:我们想办法把B上的盘子运用A移动到C.原创 2022-03-12 11:59:52 · 158 阅读 · 0 评论 -
杨辉三角解析和算法实现
杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。在初中,我们就知道,杨辉三角的两个腰边的数都是 1,其它位置的数都是上顶上两个数之和。这就是我们用C语言写杨辉三角的关键之一。在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n 为行数减 1。也就是说任何一个数等于这个是高中的组合数。n 代表行数减 1,不代表列数减 1。如:第五行的第三个数就为 =6。现在我们按第一种思路来写:先定义一个二维数组:a[N][N],略大于要打印的行数。再令两边的数为 1,即当每行的..原创 2022-03-01 11:41:32 · 536 阅读 · 0 评论 -
选择法排序
选择排序法和冒泡排序差不多,但是选择排序法不是比出大小就交换而是编辑出最大值点,当一轮比较完成后将标记的值和最后一个数值做交换,然后继续进行下一轮的交换,在下一轮时末端边界自动减一。例如:用maxPos标记区间中首元素位置,然后用后序元素依次与maxPos标记的元素进行比较,如果有元素大于maxPos位置的元素,用maxPos标记该元素的位置,直到区间的末尾。该趟选择完成后,即找到该区间中最大元素,如果maxPos标记的最大元素不在区间末尾,用maxPos位置元素与区间末尾的元素进行交换。继原创 2022-02-28 18:16:22 · 728 阅读 · 3 评论 -
素数筛选法
筛选法又称筛法,具体做法是第一轮:当前数值为2,用后面的数字3对2取模,余数为1则把3保留;继续向后用4对2取模,余数为0则把4消灭;按照这种方法检测一轮。第二轮:刚才是2现在应该是3了,按照刚才的方法继续取模。第三轮:经过前两轮检测后,4已经被消灭了,现在应该是5了,按照前面的方法继续。后面的轮数也是按照这种方式继续检测,现在看懂了吗?如果还不懂那就来看代码吧!原创 2022-02-27 21:46:42 · 807 阅读 · 0 评论