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

王总的博客

【C语言】二维数组做函数参数与矩阵的相乘
发表于2025-12-13|更新于2026-04-14|C语言|函数•二维数组
二维数组做函数参数与矩阵的相乘背景:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859二维数组实验题:利用矩阵相乘公式,编程计算M*N阶矩阵A和N*M阶矩阵B之积C(M*M阶矩阵)。要求如下:1.用宏定义形式分别定义M、N的值为3、4。2.函数原型分别定义成:void MultiplyMatrix(int a[M][N], int b[N][M], int c[M][M]);/* 函数功能:计算矩阵相乘之积,结果存于二维数组c中 */void InputMatrixA(int a[M][N]);/* 函数功能:输入矩阵a中的元素 */void InputMatrixB(int b[N][M]);/* 函数功能:输入矩阵b中的元素 */void OutputMatrix(int a[M][M]);/* 函数功能:输出矩阵a中的元素 */3.主函数定义成:int main(){ int a[M][N], b[...
【C语言】代码日常(1)
发表于2025-12-13|更新于2026-04-14|C语言
代码日常(1)1/2将数据按照奇偶排输入10个数,将10个整数按升序排列输出,并且奇数在前,偶数在后。如果输入的10个数是:10 9 8 7 6 5 4 3 2 1 ,则输出:1,3,5,7,9,2,4,6,8,10。(提示:可定义2个数组,一个用来存放输入的整数,并对这个数组进行排序,然后将数据按先奇数后偶数的顺序分别复制到另一个数组中,再输出第二个数组,注意最后一个数据的格式与前面9个不同)。程序运行结果如下:Input 10 numbers:3 12 7 65 8 4 17 25 36 50↙Output: 3,7,17,25,65,4,8,12,36,50输入格式: “%d”输入数据提示信息:”Input 10 numbers:\n”输出格式:输出数据提示信息:”Output: “ (注:冒号“:”的后面有一个空格)前9个数据的输出格式:”%d,”最后一个数据的输出格式:”%d\n” 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495...
【C语言】无符号unsigned
发表于2025-12-13|更新于2026-04-14|C语言|数据类型
无符号unsigned这是一个非常好的问题。很多初学者(甚至有经验的程序员)容易陷入一个误区:“既然这个变量(比如年龄、身高、人数)不可能是负数,那我就应该用unsigned。”这个直觉通常是错的 。Google 的 C++ 编码规范甚至明确建议:除非万不得已,尽量使用有符号类型(int)。那么,到底什么时候必须 或推荐 使用 unsigned 呢?主要有以下三种场景: 1. 进行位操作 (Bitwise Operations) —— 最核心场景这是使用 unsigned 最正当、最无可争议的理由。 如果你要把一个变量当作**“一串二进制位”** (而不是一个数字)来处理,比如进行移位操作(>>, <<)、按位与/或/异或,请务必使用 unsigned。 原因: 有符号数(signed)的最高位是符号位 。当你对有符号数进行右移 操作时,不同的编译器处理方式不同(有的补0,有的补1),结果是未定义的或不可移植的。而无符号数的行为是确定的(总是补0)。 IoT 场景: 你是物联网专业的,将来写嵌入式代码(比如控制寄存器、设置GPIO引...
【C语言】神奇的递归、return、和主函数的定义
发表于2025-12-13|更新于2026-04-14|C语言|指针•递归
C语言学习笔记:利用递归实现字符串倒序输出 作者:王星皓 1. 题目要求编写一个C语言程序,利用递归函数将输入的字符串倒序输出。 输入提示:input your string:\n 输入格式:%s 输出格式:%c 2. 方法一:使用指针实现 (Pointer Approach)这是C语言中最常用的递归处理字符串的方法。利用指针算术运算 s+1 逐步向后移动,直到遇到结束符 \0。 123456789101112131415161718#include <stdio.h>void reverse_print(char *s) { if (*s == '\0') { return; // 基准情况:遇到结束符停止 } else { reverse_print(s + 1); // 递:移动指针到下一个字符 printf("%c", *s); // 归:打印当前字符 }}int main() {...
【C语言】输入与字符串
发表于2025-12-13|更新于2026-04-14|C语言|输入•字符串
输入与字符串一、getchar和scanf1. getchar() 的行为它是最原始的字符读取函数。它的逻辑是:输入缓冲区里有什么,我就拿什么,绝不挑食。 2. scanf() 的行为scanf 通常比较“聪明”,比如 %d 或 %s 会自动跳过空格、回车和制表符。一旦遇到这些空白字符,它就会立刻停止读取 , 但是! %c 是个特例。当使用 %c 时,它的行为和 getchar() 几乎一模一样:不跳过任何空白字符 。 二、gets 、 fgets 和 gets_s1. gets() —— 亡命徒 (The Outlaw) 状态 :极度危险 ,已被废弃(C11 标准已将其从库中移除)。 安全性 :0 分 。 它不接受数组大小作为参数。 原理 :你给它一个 10 字节的杯子,如果用户倒入 100 升水,它会照单全收,溢出的水会覆盖掉杯子后面的内存(造成缓冲区溢出攻击)。 回车处理 :“吃掉”回车 。 读取到 \n 为止,然后把 \n 扔掉,换成 \0。 内存样子:输入 abc + 回车[‘a’, ‘b’, ‘c’, ‘\0’] 2. fgets() —— 严谨的守卫...
【C语言】scanf循环读取一次输入
发表于2025-12-06|更新于2026-04-14|C语言|输入
scanf循环读取一次输入背景有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数。输入提示:”共有多少个数?”输入格式:”%d”输入提示:”后移多少个?”输入格式:”%d”输出提示:”请以,号为间隔输入%d个数。\n”输出格式:”%d,”输出提示:”移动后顺序为:\n”输出格式:”%d,”程序的运行示例如下:共有多少个数?5后移多少个?2请以,号为间隔输入5个数。1,2,3,4,5移动后顺序为:4,5,1,2,3 代码实现:12345678910111213141516171819202122232425262728293031323334353637383940414243#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#define MAX 1000void move(int*, int, int);int main(void){ int a[MAX], n, m; char sep; printf("共有多少个数?"); scanf(&qu...
【C语言】二分法查找下标
发表于2025-12-06|更新于2026-04-14|C语言
二分法查找下标题目:折半查找算法,当找到输入元素后显示其在数组中的下标 代码实现:1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <stdio.h>int main(){ // 修正1:up设为9(数组最大下标),low设为0(数组最小下标),初始化found为0 int up = 9, low = 0, mid, found = 0, find; int a[10] = { 1, 5, 6, 9, 11, 17, 25, 34, 38, 41 }; printf("请输入要查找的数字: "); // 修正2:scanf添加取地址符 & scanf("%d", &find); printf("\n"); // 修正3:循环条件改为逻辑与 &&,且使用 standard 的 l...
【C语言】循环中变量的作用域
发表于2025-12-06|更新于2026-04-14|C语言
循环中变量的作用域背景:输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩不低于平均分的学生人数。要求:(1)按如下函数原型进行编程:int GetAboveAver(int score[], int n);(2)在主函数中:输入学生成绩,然后调用函数GetAboveAver计算成绩不低于平均分的学生人数,最后输出该人数。要求:(1)学生成绩和平均分均定义为int类型(2)**无输入提示信息**输入格式为:”%d”**输出格式为:”Students of above average is %d\n”程序运行示例:88 75 86 67 59 66 -1↙Students of above average is 3 代码实现:1234567891011121314151617181920212223242526272829303132#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#define MAX 40int calculate(int*,int);int main()&...
【C语言】疑难解答(1)
发表于2025-12-06|更新于2026-04-14|C语言|缓冲区
疑难解答(1)学了一段时间的C语言,我向哈基米问了几个问题 Q:我现在正在使用visual studio 2026,为什么我使用scanf的时候会显示scanf不安全?A:Visual Studio 给你的报错通常是 C4996,这并不是说 scanf 这个函数坏了,而是因为它有一个先天缺陷 :不检查边界 。 1. 缓冲区溢出(Buffer Overflow)想象一下,你申请了一个只能装 5 个字符的数组 char a[5],但是你在 scanf("%s", a) 的时候,用户如果不听话,输入了 100 个字符。 scanf 也是个“老实人”,用户给多少它就往内存里塞多少。 结果 :多出来的字符会溢出,覆盖掉数组后面原本不属于它的内存区域。这可能导致程序崩溃,甚至被黑客利用(这就是著名的“缓冲区溢出攻击”)。 2. 微软的解决方案微软为了安全,推出了 scanf_s 等一系列带 _s (Secure) 后缀的函数。它们要求你明确告诉它“这块内存有多大”,如果输入超过这个大小,函数就会报错而不是让程序崩溃。 Q:为什么 12#define _CRT_SE...
【C语言】运算符优先级和数组定义
发表于2025-12-06|更新于2026-04-14|C语言|运算符
运算符优先级和数组定义背景按照筛法求素数的思想求出100以内的所有素数。每行10个。**输出格式要求:”%5d”用筛法求素数的基本思想是:把从2到N的一组正整数从小到大按顺序排列。从中依次删除2的倍数、3的倍数、5的倍数,直到根号N的倍数为止,剩余的即为2~N之间的所有素数。如有: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去掉2的倍数(不包括2),余下的数是:3 5 7 9 11 13 15 17 19 21 23 25 27 29剩下的数中3最小,去掉3的倍数,如此下去直到sqrt(30)的倍数,最后求出的素数为:2 3 5 7 11 13 17 19 23 29 代码实现123456789101112131415161718192021222324252627282930#include <stdio.h>#include <math.h>#define n 100int main(){ //const int n=100; in...
1…456…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