avatar
文章
102
标签
42
分类
7
首页
时间轴
标签
分类
音乐
图库
清单
  • 开发工具
  • 疑难解答
  • 烟草纲目
友链
关于
王总的博客
首页
时间轴
标签
分类
音乐
图库
清单
  • 开发工具
  • 疑难解答
  • 烟草纲目
友链
关于

王总的博客

【C语言】屎山代码补救
发表于2025-12-24|更新于2026-04-14|C语言|递归
屎山代码补救我写过一个屎山代码 - Hexo,一直不愿意面对。这不要期末了吗,我找了 重庆没电大学 的C语言往年真题开始刷结果您猜怎么着,我碰见一个题目,恰好就是我屎山代码的解药!直接看吧: 123456789101112131415161718#include<stdio.h>void Fun(int x);void main() { int a = 12; printf("%d=", a); Fun(a);}void Fun(int x) { int i; for (i = 2; i < x; i++) { if (x % i == 0) { printf("%d * ", i); Fun(x / i); return; } } printf("%d", x);} 这个代码利用递归调用,很好地实现了质因数分解,仅仅只花了18行这里的return很有趣 😊,试试将return注释掉,运行一下看吧👉v...
【C语言】一维数组地址
发表于2025-12-23|更新于2026-04-14|C语言|地址•指针
一维数组地址一维背景123假设有int a[5],请问表示数组a中首元素的地址是什么?A: aB: &a 答案: a 深究数组地址:一、取地址运算符 &1int a; 如果 a 是一个 int 类型的变量,那么 &a 的结果类型是 int \*(读作:指向 int 的指针) 怎么理解 & 符号?你可以把它当成一个动作 。 a:代表“** 变量里的值**”(在这个房间里住着谁?)。 &a:代表“** 变量的地址**”(这个房间的门牌号是多少?)。 &a是一个地址,是什么类型的?是 int * 而不是 int虽然“地址”看起来像是一串数字(比如 6422300),在物理上它确实是个整数,但在 C 语言的规则里,它属于指针类型 。 二、怎么打印地址?用什么符号打印?新知识: %p就像用 %d 来打印整数(d ecimal),用 %f 来打印小数(f loat)一样: %p 是专门用来打印指针(Pointer)/地址 的占位符。 它有什么特别的? 如果你用 %d 打印地址,它会显示成一个很长很乱的负数或整数。而 ...
【C语言】二维内存分配做函数参数
发表于2025-12-23|更新于2026-04-14|C语言|函数
二维内存做函数参数题目:1234567891011121314151617(语言: C)输入n×n阶矩阵(n最大为10),按如下函数原型/* 函数功能: 计算n×n矩阵中两条对角线上的元素之和 */int AddDiagonal(int a[N][N], int n);用函数编程计算并输出其两条对角线上的各元素之和。**输入提示信息:"Input n:" "Input %d*%d matrix:\n"**输入格式要求:"%d" **输出格式要求:"sum = %d\n" 程序运行示例如下:Input n:5Input 5*5 matrix:1 2 3 4 5 2 3 4 5 6 3 4 5 6 74 5 6 7 8 5 6 7 8 9sum = 45注:不允许使用goto语句 代码实现:函数声明和定义中的函数参数改成int **a 。 1234567891011121314151617181920212223242526272829303132333...
【C语言】运算符优先级判断技巧
发表于2025-12-23|更新于2026-04-14|C语言|运算符
运算符优先级判断技巧在C语言的逻辑里,*数学运算(算术)的优先级高于*比较运算(关系) 第一层:非 (Unary / 单目) —— 霸道总裁 运算符: ! (逻辑非), ++, --, sizeof, ~, * (指针取值) 特点: 它们紧紧贴着变量,最先执行。比如 !a 或 i++。 第二层:算 (Arithmetic / 算术) —— 先算账 运算符: *, /, % > +, - 特点: 这里遵循小学数学,“先乘除模,后加减”。 第三层:关 (Relational / 关系) —— 后比较 运算符: >, <, >=, <= > ==, != 注意(这也是考点): “比较大小”的优先级 高于 “判断相等”。 例子:a < b == c 实际上是先算 (a < b) 的结果(0或1),再看这个结果等不等于 c。 第四层:逻 (Logical / 逻辑) —— 判真假 运算符: && (与) > || (或) 特点: 只有两边的算术和比较都做完了,才能最后进行...
【C语言】二级指针动态内存分配
发表于2025-12-17|更新于2026-04-14|C语言|指针•动态内存分配•二级指针
二级指针动态内存分配背景123456789101112131415用动态数组编程输入任意m个班学生(每班n个学生)的某门课的成绩,计算最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。其中,m和n的值由用户从键盘任意输入(不限定m和n的上限值)。输入提示信息:"Input array size m,n:""Input %d*%d array:\n"输入m,n的格式:"%d,%d"输入成绩的格式:"%d"输出提示信息和格式:"maxScore = %d, class = %d, number = %d\n"输入:Input array size m,n:2,3Input 2*3 array:↙90 69 8897 95 95maxScore = 97, class = 2, number = 1↙ 代码实现:123456789101112131415161718192021222324252627282930313233343536373839404142#includ...
【C语言】动态内存分配
发表于2025-12-17|更新于2026-04-14|C语言|动态内存分配
动态内存分配背景以前如果需要从键盘输入数组的范围并定义是行不通的。只能定义一个较大的值作为数组的大小,此时数组长度必须在编译的时候 确定而动态数组 允许你在程序运行过程中 (Runtime)才决定数组的大小。有: 12345678910111213语言: C)产生动态数组,编写程序,输入数组大小后,通过动态分配内存函数malloc产生数组。**输入格式要求:"%d" 提示信息:"Enter array size:"**输出格式要求:"array[%d]=%d\n"程序运行示例如下:Enter array size:8array[0]=0array[1]=10array[2]=20array[3]=30array[4]=40array[5]=50array[6]=60array[7]=70 代码实现123456789101112131415161718192021222324252627282930313233343536#include <stdio.h>#include <stdlib.h>...
【C语言】二维矩阵字符串排序
发表于2025-12-14|更新于2026-04-14|C语言|字符串
二维矩阵字符串排序遇到个很难的题目:123456789101112131415161718192021222324252627282930字符串排序。调用Input函数输入10个字符串,调用Sort函数对这10个字符串按字典顺序排序,调用Print函数打印输出排序后的字符串。Input函数原型: void Input(char str[][80],int n);Sort函数原型: void Sort(char str[][80],int n);Print函数原型: void Print(char str[][80],int n);***输入数据格式:读入可包含有空格的字符串(字符串最大长度80)***输出数据格式: 一行输出一个字符串程序运行示例:hello↙my↙name↙is↙zyk↙how↙are↙you↙he↙and↙andarehehellohowismynameyouzyk 我写的代码:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748...
【C语言】函数指针
发表于2025-12-14|更新于2026-04-14|C语言|指针
函数指针背景:123456789编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 求1/1+1/3+...+1/n(要求利用函数指针编程)输入格式:"%d"程序运行示例1如下:10Even=1.141666程序运行示例2如下:9Odd=1.787302 代码实现:1234567891011121314151617181920212223242526272829303132333435363738#include <stdio.h>double even_sum(int);double odd_sum(int);int main(){ int n; double (*current)(int); scanf("%d",&n); if(n%2==0){ current=even_sum; }else{ current=odd_sum; } double result=current(n); if(n%2==0) ...
【C语言】辗转相除法的最简形态
发表于2025-12-14|更新于2026-04-14
辗转相除法的最简形态用最简单的代码求最大公约数直入主题: 123int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b);} a一定要比b大吗?完全不需要这也是欧几里得算法(辗转相除法)最神奇、最“智能”的地方:它自带自动纠正(Auto-Swap) 功能。不管你传进去的是 gcd(大, 小) 还是 gcd(小, 大),结果完全一样,代码不需要做任何修改。 为什么不需要?如果在第一次调用时,a 比 b 小(比如 a=10, b=25),% 运算会产生一个神奇的效果:因为在数学中,如果被除数比除数小,余数就是被除数本身。 即:10 % 25 = 10。让我们来看看如果把小的数放前面,程序会怎么跑: 场景演示:gcd(10, 25) 第 1 轮: 调用 gcd(10, 25) a = 10, b = 25 计算 a % b -> 10 % 25 = 10 执行递归:gcd(25, 10) 看! 仅仅经过一步,两个数字的位置就自动互换 了,变成“大数在前,小数在后”了...
【C语言】临时笔记
发表于2025-12-13|更新于2026-04-14|C语言|字符串
讲一下字符串初始化的格式讲一下什么是,sizeof,strlen,stract,strcmp,strcpy这几个函数是C语言字符串操作的“基石”。特别是 sizeof 和 strlen 的区别,是期末考试和面试的必考题。我们分两部分来讲: 第一部分:字符串初始化的格式在 C 语言中,字符串本质上是以\0 结尾的字符数组。常见的初始化方式有以下 4 种: 1. 指定长度的数组(最标准)C 12// 申请 10 个格子,填入 hello,剩下的格子自动补 \0char str[10] = "hello"; 2. 偷懒写法(省略长度)C 12// 编译器会自动数:h-e-l-l-o-\0,一共申请 6 个字节char str[] = "hello"; 3. 逐个字符赋值(最麻烦,容易漏 \0)C 12// 必须手动在最后加 '\0',否则打印时会乱码char str[] = {'h', 'e', 'l', 'l', '...
1…345…11
avatar
Wang Bo Sen
学无止境
文章
102
标签
42
分类
7
Follow Me
公告
正在完善中
最新文章
【网络基础】 校园网环境下VMware虚拟机联网底层机制与代理穿透实战2026-04-15
【Python】文件输入输出2026-04-14
【Python】列表2026-04-14
【Python】判断,循环
【Python】判断,循环2026-04-14
【C语言】打印二进制2026-04-12
分类
  • C语言78
  • Python13
  • markdown1
  • 开发工具1
  • 文章4
  • 烟草纲目1
  • 计算机网络2
标签
ascll码 函数 数据类型 host文件 地址 环境配置 教程 运算符 循环 输入 列表推导式 排序 位运算 宏定义 字符串 格式化输出 VS Code 占位符 静态变量 动态内存分配 缓冲区 二维数组 八进制 头文件 文件输入输出 自创 数组地址 虚拟机 指针 关键字 二进制 字典 输入合法性校验 结构体 数据结构 递归 转义字符 数据处理 二级指针 math.h
归档
  • 四月 2026 14
  • 三月 2026 2
  • 二月 2026 2
  • 一月 2026 7
  • 十二月 2025 26
  • 十一月 2025 45
  • 十月 2025 5
  • 一月 2024 1
网站信息
文章数目 :
102
本站总字数 :
106.4k
本站访客数 :
本站总浏览量 :
最后更新时间 :
文档
开发工具疑难解答烟草纲目
其他
音乐图库友情链接关于
框架
HexoButterfly
贊助
JerryC
© 2025 - 2026 By Wang Bo Sen|框架 Hexo 8.1.1|主题 Butterfly 5.5.4