c语言笔记(1)

ps:先举三反一,再举一反三,学习就应该是这样,先模仿,再改进,最后实现自己的创意! –小甲鱼论坛 C语言中各种数据类型所占用的存储空间的大小 int—32位 四个字节 float —32位 四个字节 char—8位 一个字节 double—-64位 8个字节 bool—-16位 2个字节 long—-32位 四个字节 整数类型 下表列出了关于标准整数类型的存储大小和值范围的细节: 类型 存储大小 值范围 char 1 字节 -128 到 127 或 0 到 255 unsigned char 1 字节 0 到 255 signed char 1 字节 -128 到 127 int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295 short 2 字节 -32,768 到 32,767 unsigned short 2 字节 0 到 65,535 long 4 字节 -2,147,483,648 到 2,147,483,647 unsigned long 4 字节 0 到 4,294,967,295 浮点类型 下表列出了关于标准浮点类型的存储大小、值范围和精度的细节: 类型 存储大小 值范围 精度 float 4 字节 1.2E-38 到 3.4E+38 6 位小数 double 8 字节 2.3E-308 到 1.7E+308 15 位小数 long double 16 字节 3.4E-4932 到 1.1E+4932 19 位小数 void 类型 void 类型指定没有可用的值。它通常用于以下三种情况下: 序号 类型与描述 1 函数返回为空 C 中有各种函数都不返回值,或者您可以说它们返回空。不返回值的函数的返回类型为空。例如 void exit (int status); 2 函数参数为空 C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void); 3 指针指向 void 类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。 ...

10 min · 5008 words · Luenci

c语言笔记(2)

先举三反一,再举一反三,学习就应该是这样,先模仿,再改进,最后实现自己的创意! –小甲鱼论坛 递归 调用函数本身 设置递归结束条件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 // // Created by Luenci on 2019/10/11. // #include <stdio.h> void fun(void); long fact(int num); void fun(void){ static int count = 10; printf("Hi\n"); if (count--){ fun(); } } long fact(int num){ long result; if(num > 0){ result = num * fact(num-1); } else{ result = 1; } return result; } int main(void){ // fun(); int num; long re; printf("请输入您要求阶乘的数:"); scanf("%d", &num); re = fact(num); printf("%d", re); return 0; } 汉罗塔 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include<stdio.h> void hanoi(int n, char x, char y, char z); void hanoi(int n, char x, char y, char z){ if(n==1){ printf("%c --> %c \n", x,z); } else{ // 将前n-1个圆盘借助z移动到y hanoi(n-1, x, z, y); printf("%c --> %c \n", x,z); // 将前n-1个圆盘借助x移动到z hanoi(n-1, y, x, z); } } int main(void){ int n; printf("请输入您的层数:"); scanf("%d", &n); hanoi(n, 'X', 'Y', 'Z'); return 0; } 快速排序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 // // Created by Luenci on 2019/10/11. // #include <stdio.h> void quick_sort(int array[], int left, int right); void quick_sort(int array[], int left, int right) { int i = left, j = right; int temp; // 交换的中间变量 int pivot; // 基准点 pivot = array[(left + right) / 2]; while (i <= j) { // 从右往左找到大于等于基准点的元素 while (array[i] < pivot) { i++; } // 从右到左找到小于等于基准点的元素 while (array[j] > pivot) { j--; } // 如果 i <= j,则互换 if (i <= j) { temp = array[i]; array[i] = array[j]; array[j] = temp; i++; j++; } } if (left < j) { quick_sort(array, left, j); } if (i < right) { quick_sort(array, i, right); } } int main(void){ int array[] = {73, 108, 111, 101, 78, 109, 66, 48, 88, 135}; int i, length; // 计算数组的长度 length = sizeof(array) / sizeof(array[0]); quick_sort(array, 0, length-1); printf("排序后的结果是:"); for (i = 0; i < length; i++){ printf("%d ,", array[i]); } putchar('\n'); return 0; } ...

8 min · 3944 words · Luenci

c语言笔记(3)

结构体 结构体声明 1 2 3 4 5 6 7 struct Book { 结构体成员1; 结构体成员2; 结构体成员3; ...... }; 定义结构体类型变量 struct 结构体名称 结构体变量名 访问结构体变量 要访问结构体成员,我们需要引入一个新的运算符——点号(.)运算符。比如book.title就是引用book结构体的title成员,它是一个字符数组。 初始结构体的指定成员值 其语法和数组指定初始化元素类似,不过结构体指定初始化成员使用点号(.)运算符和成员名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 // // Created by Luenci on 2019/10/13. // #include <stdio.h> struct Book{ char title[128]; char author[40]; float price; unsigned int data; char publisher[40]; }book; int main(void){ // struct Book book1; printf("请输入书名:"); scanf("%s", book.title); printf("请输入作者:"); scanf("%s", book.author); printf("请输入售价:"); scanf("%f", &book.price); printf("请输入出版日期:"); scanf("%d", &book.data); printf("请输入出版社:"); scanf("%s", book.publisher); printf("\n====数据录入完毕====\n\n"); printf("书名:%s\n", book.title); printf("作者:%s\n", book.author); printf("售价:%.2f\n", book.price); printf("出版日期:%d\n", book.data); printf("出版社:%s\n", book.publisher); return 0; } 结构体嵌套 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 // // Created by Luenci on 2019/10/13. // #include <stdio.h> struct Data{ int year; int month; int day; }; struct Book{ char title[128]; char author[40]; float price; struct Data data; char publisher[40]; }book = { // 初始化 "c学习", "Luenci", 48.8, {2019,11,13}, "文华出版社" }; int main(void){ printf("\n====数据录入为====\n\n"); printf("书名:%s\n", book.title); printf("作者:%s\n", book.author); printf("售价:%.2f\n", book.price); printf("出版日期:%d%d%d\n", book.data.year, book.data.month, book.data.day); printf("出版社:%s\n", book.publisher); return 0; } out 书名:c学习 作者:Luenci 售价:48.80 出版日期:20191113 出版社:文华出版社 ...

27 min · 13032 words · Luenci