c语言==判断一个数是否为2的整数次方【不使用循环】

对于判断一个数是否为2的N次方问题,通常想到的最为直接的办法就是对这个数不断对2取余,为0就将该数变为该数除以2,直到最后该数为1为止。

void judge(int n)  
{  
    while(!(n % 2))  
    {  
         n = n / 2;  

         if(n == 1)  
         {   
              printf("yes!\n);  
              return;  
         }  
    }  

     printf("NO!\n");  
     return;  
}  

不过上面的方法并不是较好的方法,其实还有更为简洁高效的方法 
一个整数,若是2的n次方,有没有想过对这个整数的2进制进行考虑,比如12,它的二进制为:1100

2 10 
4 100 
13 1101 
16 10000 
32 100000 
从上面的举例我们发现,凡是2的N次方的整数,其二进制码只有一个1。 
假设A为要证明的整数,B等于A-1,我们假设A为2的N次方数,那么A&B = 0,这很好证明。那是不是满足A&B = 0就能证明A是2的N次方数呢? 
假设一个数的二进制为1000000000000000(这里为int型:两个字节),那这个数减去1则变为0111111111111111。我们知道,在计算机中,数都是以其二进制的补码放置的,最高位为1代表负数,最高位为0代表正数。上面两个数中, 
1000000000000000为负数,0111111111111111为正数,这两个数相与为0,但1000000000000000并不是2的N次方(2的N次方为正数)。 
因此,倘若一个数为2的N次方,那么该数应满足大于0且该数和该数减一后的值相与等于0时才为2的N次方。

void judge(int n)  
{  
    if((n > 0) && (n & (n -1) ==0))  
   {  
        printf("Yes!\n");  
        return;  
   }  

   printf("NO!\n");  
   return;  
}  



  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源简介 第1章 据结构. 1 1.1 组和字符串 2 1.1.1 一维组的倒置 2 范例1-1 一维组的倒置 2 ∷相关函:fun函 1.1.2 一维组应用 3 范例1-2 一维组应用 3 1.1.3 一维组的高级应用 5 范例1-3 一维组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函:c函 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维组的表示 14 范例1-6 三维组的表示 14 ∷相关函:InitArray函 1.1.7 多项式的组表示 17 范例1-7 多项式组的表示 17 1.1.8 查找矩阵的马鞍点 19 范例1-8 查找矩阵的马鞍点 19 ∷相关函:Get_Saddle函 1.1.9 对角矩阵建立 21 范例1-9 对角矩阵建立 21 ∷相关函:Store函 1.1.10 三对角矩阵的建立 22 范例1-10 三对角矩阵的建立 22 ∷相关函:Store函 1.1.11 三角矩阵建立 24 范例1-11 三角矩阵建立 24 ∷相关函:Store函 1.1.12 对称矩阵的建立 25 范例1-12 对称矩阵的建立 25 ∷相关函:store函 1.1.13 字符串长度的计算 28 范例1-13 字符串长度的计算 28 ∷相关函:strlen函 1.1.14 字符串的复制 29 范例1-14 字符串的复制 29 ∷相关函:strcpy函 1.1.15 字符串的替换 31 范例1-15 字符串的替换 31 ∷相关函:strrep函 1.1.16 字符串的删除 33 范例1-16 字符串的删除 33 ∷相关函:strdel函 1.1.17 字符串的比较 35 范例1-17 字符串的比较 35 ∷相关函:strcmp函 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函:substr函 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函:partition函 1.1.20 字符串的插入 40 范例1-20 字符串的插入 40 ∷相关函:insert函 1.1.21 字符串的匹配 42 范例1-21 字符串的匹配 42 ∷相关函:nfind函 1.1.22 字符串的合并 43 范例1-22 字符串的合并 43 ∷相关函:catstr函 1.1.23 文本编辑 45 范例1-23 文本编辑 45 ∷相关函:StrAssign函 1.2 栈和队列 54 1.2.1 用组仿真堆栈 54 范例1-24 用组仿真堆栈 54 ∷相关函:push函 pop函 1.2.2 用链表仿真堆栈 57 范例1-25 用链表仿真堆栈 57 ∷相关函:push函 pop函 1.2.3 顺序栈公用 59 范例1-26 顺序栈公用 59 ∷相关函:push函 pop函 1.2.4 进制转换问题 61 范例1-27 进制转换问题 61 ∷相关函:MultiBaseOutput函 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函:push函 pop函 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函:EnQueue函 DeQueue函 1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函:push函 pop函 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函:EnQueue函 DeQueue函 DancePartner函 1.3 链表 75 1.3.1 头插法建立单链表 75 范例1-32 头插法建立单链表 75 ∷相关函:createlist函 1.3.2 限制链表长度建立单链表 77 范例1-33 限制链表长度建立长单链表 77 ∷相关函:createlist函 1.3.3 尾插法建立单链表 79 范例1-34 尾插法建立单链表 79 ∷相关函:createlist函 1.3.4 按序号查找单链表 80 范例1-35 按序号查找单链表 80 ∷相关函:getnode函 1.3.5 按值查找单链表 82 范例1-36 按值查找单链表 82 ∷相关函:locatenode函 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函:insertnode函 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函:deletelist函 1.3.8 归并两个单链表 88 范例1-39 归并两个单链表 88 ∷相关函:concatenate函 1.3.9 动态堆栈 90 范例1-40 动态堆栈 90 ∷相关函:push函 Pop函 1.3.10 动态队列 93 范例1-41 动态队列 93 ∷相关函:Enqueue函 1.3.11 初始化单循环链表 95 范例1-42 初始化单循环链表 95 ∷相关函:ListLength_CL函 1.3.12 查询元素的前驱和后继 98 范例1-43 查询元素的前驱和后继 98 ∷相关函:PriorElem_CL函 NextElem_CL函 1.3.13 单循环链表中元素的删除 101 范例1-44 单循环链表中元素的删除 101 ∷相关函:ListDelete_CL函 1.3.14 单循环链表的清除和销毁 107 范例1-45 单循环链表的清除和销毁 107 ∷相关函:DestroyList函 1.3.15 仅设表尾指针循环链表的合并 110 范例1-46 仅设表尾指针循环链表的合并 110 ∷相关函:MergeList_CL函 1.3.16 正序输出双向链表 113 范例1-47 正序输出双向链表 113 ∷相关函:ListInsert函 ListTraverse函 1.3.17 逆向输出双向链表 116 范例1-48 三角矩阵建立 116 ∷相关函:ListTraverseBack函 1.3.18 删除双向链表中的节点 121 范例1-49 删除双向链表中的节点 121 ∷相关函:ListDelete函 1.3.19 双向链表的元素个 124 范例1-50 双向链表的元素个 124 ∷相关函:ListLength函 1.3.20 判断双向链表是否为空 126 范例1-51 判断双向链表是否为空 126 ∷相关函:ListEmpty函 1.3.21 双向链表元素值的查询 129 范例1-52 双向链表元素值的查询 129 ∷相关函:GetElemP函 1.3.22 稀疏矩阵的建立 136 范例1-53 稀疏矩阵的建立 136 ∷相关函:Create函 1.3.23 稀疏矩阵的删除 138 范例1-54 稀疏矩阵的删除 138 ∷相关函:erase函 1.4 树和二叉树 141 1.4.1 获得二叉树的深度和根(顺序结构) 141 范例1-55 获得二叉树的深度和根 141 ∷相关函:BiTreeDepth函 Root函 1.4.2 获得二叉树的深度和根(链表结构) 144 范例1-56 获得二叉树的深度和根 144 ∷相关函:BiTreeDepth函 Root函 1.4.3 树的插入(顺序结构) 147 范例1-57 树的插入 147 ∷相关函:InsertChild函 1.4.4 节点的修改(顺序结构) 150 范例1-58 节点的修改 150 ∷相关函:Assign函 1.4.5 节点的修改(链式结构) 154 范例1-59 节点的修改 154 ∷相关函:Assign函 1.4.6 双亲、孩子和兄弟节点的查询(顺序结构) 158 范例1-60 双亲、孩子和兄弟节点的查询 158 ∷相关函:Parent函 LeftChild函 RightChild函 LeftSibling函 RightSibling函 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函:Parent函 LeftChild函 RightChild函 LeftSibling函 RightSibling函 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函:InOrderTraverse函 1.4.9 中序遍历二叉树(链式结构) 171 范例1-63 中序遍历二叉树 171 ∷相关函:InOrderTraverse函 1.4.10 中序非递归遍历二叉树(链式结构)(1) 174 范例1-64 中序非递归遍历二叉树 174 ∷相关函:InOrderTraverse函 1.4.11 中序非递归遍历二叉树(链式结构)(2) 177 范例1-65 中序非递归遍历二叉树 177 ∷相关函:InOrderTraverse2函 1.4.12 后序遍历二叉树(顺序结构) 180 范例1-66 后序遍历二叉树 180 ∷相关函:PostOrderTraverse函 1.4.13 后序遍历二叉树(链式结构) 183 范例1-67 后序遍历二叉树 183 ∷相关函:PostOrderTraverse函 1.4.14 层遍历二叉树(顺序结构) 186 范例1-68 层遍历二叉树 186 ∷相关函:LevelOrderTraverse函 1.4.15 层遍历二叉树(链式结构) 188 范例1-68 层遍历二叉树 188 ∷相关函:LevelOrderTraverse函 1.4.16 树的合并 191 范例1-70 树的合并 191 ∷相关函:Find函 Union函 1.4.17 树的二叉链表存储的基本操作 193 范例1-71 树的二叉链表存储的基本操作 193 ∷相关函:LevelOrderTraverse函 1.4.18 二叉树的三叉链表存储的基本操作 201 范例1-72 二叉树的三叉链表存储表示 201 ∷相关函:CreateBiTree函 1.4.19 二叉树的二叉线索存储的基本操作 212 范例1-73 二叉树的二叉线索存储 212 ∷相关函:CreateBiThrTree函 1.4.20 树的双亲表存储的基本操作 215 范例1-74 树的双亲表存储的基本操作 215 ∷相关函:CreateTree函 1.4.21 哈夫曼编码(1) 223 范例1-75 哈夫曼编码(1) 223 ∷相关函:HuffmanCoding函 1.4.22 哈夫曼编码(2) 226 范例1-76 哈夫曼编码(2) 226 ∷相关函:HuffmanCoding函 1.5 排序 229 1.5.1 直接插入排序 229 范例1-77 直接插入排序 229 ∷相关函:InsertSort函 1.5.2 折半插入排序(顺序结构) 231 范例1-78 折半插入排序(顺序结构) 231 ∷相关函:BInsertSort函 1.5.3 2—路插入排序(顺序结构) 233 范例1-79 2—路插入排序(顺序结构) 233 ∷相关函:P2_InsertSort函 1.5.4 折半插入排序(链式结构) 235 范例1-80 折半插入排序(链式结构) 235 ∷相关函:Arrange函 1.5.5 2—路插入排序(链式结构) 238 范例1-81 2—路插入排序(链式结构) 238 ∷相关函:Rearrange函 1.5.6 希尔排序 241 范例1-82 希尔排序 241 ∷相关函:ShellSort函 1.5.7 冒泡排序 243 范例1-83 冒泡排序 243 ∷相关函:bubble_sort函 1.5.8 一趟快速排序 246 范例1-84 一趟快速排序 246 ∷相关函:QSort函 1.5.9 一趟快速排序的改进算法 248 范例1-85 一趟快速排序的改进算法 248 ∷相关函:QuickSort函 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函:SelectSort函 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函:sort函 1.5.12 树型选择排序 254 范例1-88 树型选择排序 254 ∷相关函:TreeSort函 1.5.13 堆排序 256 范例1-89 堆排序 256 ∷相关函:HeapSort函 1.5.14 归并排序 258 范例1-90 归并排序 258 ∷相关函:MergeSort函 1.5.15 多路平衡归并排序 260 范例1-91 多路平衡归并排序 260 ∷相关函:K_Merge函 1.5.16 置换—选择排序 265 范例1-92 置换—选择排序 265 ∷相关函:Replace_Selection函 1.5.17 文件的归并 269 范例1-93 文件的归并 269 ∷相关函:K_Merge函 1.6 查找 272 1.6.1 顺序表的查找 273 范例1-94 顺序表的查找 273 ∷相关函:Search_Seq函 1.6.2 静态树表的查找 276 范例1-95 静态树表的查找 276 ∷相关函:Search_SOSTree函 1.6.3 二叉排序树的基本操作 280 范例1-96 二叉排序树的基本操作 280 ∷相关函:InsertBST函 1.6.4 平衡二叉树的基本操作 285 范例1-97 平衡二叉树的基本操作 285 ∷相关函:SearchBST函 1.6.5 B树的基本操作 290 范例1-98 B树的基本操作 290 ∷相关函:SearchBTree函 1.6.6 按关键字符串的遍历双链键树 295 范例1-99 按关键字符串遍历双链键树 295 ∷相关函:SearchDLTree函 1.6.7 按关键字符串的遍历Trie树 301 范例1-100 按关键字符串遍历Trie树 301 ∷相关函:SearchTrie函 1.6.8 哈希表的基本操作 306 范例1-101 哈希表的基本操作 306 ∷相关函:SearchHash函 1.7 图 311 1.7.1 图的邻接矩阵存储表示 311 范例1-102 图的邻接矩阵存储表示 ∷相关函:CreateFAG函 CreateDG函 1.7.2 图的邻接表存储表示 324 范例1-103 图的邻接表存储表示 324 ∷相关函:CreateFAG函 1.7.3 有向图的十字链表存储表示 335 范例1-104 有向图的十字链表存储表示 335 ∷相关函:CreateDG函 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函:CreateGraph函 1.7.5 最小生成树 355 范例1-106 最小生成树 355 ∷相关函:MiniSpanTree_PRIM函 1.7.6 关节点和重连通分量 359 范例1-107 关节点和重连通分量 359 ∷相关函:FindArticul函 1.7.7 拓扑排序 366 范例1-108 拓扑排序 366 ∷相关函:TopologicalSort函 1.7.8 关键路径 374 范例1-109 关键路径 374 ∷相关函:CriticalPath函 1.7.9 最短路径 383 范例1-110 最短路径 383 ∷相关函:ShortestPath_DIJ函 1.7.10 每一对顶点之间的最短路径 387 范例1-111 每一对顶点之间的最短路径 387 ∷相关函:ShortestPath_FLOYD函 1.8 本章小结 395 第2章 值计算 397 2.1 常见的学函 398 2.1.1 求整数的绝对值 398 范例2-1 求整数的绝对值 398 ∷相关函:abs函 2.1.2 求长整型整数的绝对值 399 范例2-2 求长整型整数的绝对值 399 ∷相关函:labs函 2.1.2 求浮点的绝对值 400 范例2-2 求浮点的绝对值 400 ∷相关函:fabs函 2.1.4 求反余弦 400 范例2-4 求反余弦 400 ∷相关函:acos函 2.1.5 求反正弦 401 范例2-5 求反正弦 401 ∷相关函:asin函 2.1.6 求反正切 402 范例2-6 求反正切 402 ∷相关函:atan函 2.1.7 对浮点进行舍入 403 范例2-7 对浮点进行舍入 403 ∷相关函:ceil函 2.1.8 求余弦 404 范例2-8 求余弦 404 ∷相关函:cos函 2.1.9 求双曲余弦 405 范例2-9 求双曲余弦 405 ∷相关函:cosh函 2.1.10 求正弦 406 范例2-10 求正弦 406 ∷相关函:sin函 2.1.11 求双曲正弦 406 范例2-11 求双曲正弦 406 ∷相关函:sinh函 2.1.12 求正切 407 范例2-12 求正切 407 ∷相关函:tan函 2.1.13 求双曲正切 408 范例2-13 求双曲正切 408 ∷相关函:tanh函 2.1.14 获得整数相除的商和余 409 范例2-14 获得整数相除的商和余 409 ∷相关函:div函 2.1.15 求ex 410 范例2-15 求ex 410 ∷相关函:exp函 2.1.16 获取浮点相除的余 411 范例2-16 获取浮点相除的余 411 ∷相关函:fmod函 2.1.17 获取浮点的尾和指 412 范例2-17 获取浮点的尾和指 412 ∷相关函:frexp函 2.1.18 求x2exponent 413 范例2-18 一维多项式求值 413 ∷相关函:ldexp函 2.1.19 求自然对 413 范例2-19 求自然对 413 ∷相关函:log 函 2.1.20 求lgx 414 范例2-20 求lgx 414 ∷相关函:log10函 2.1.21 获取浮点整数部分和小部分 415 范例2-21 第二类椭圆积分 415 ∷相关函:modf函 2.1.22 求xy 416 范例2-22 求xy 416 ∷相关函:pow函 2.1.23 求10x 417 范例2-23 求10x 417 ∷相关函:pow10函 2.1.24 获取随机 418 范例2-24 获取随机 418 ∷相关函:rand函 2.1.25 设置随机生成器初值 418 范例2-25 设置随机生成器初值 418 ∷相关函:srand函 2.1.26 获取最大值和最小值 419 范例2-26 获取最大值和最小值 419 ∷相关函:max函 min函 2.1.27 求直角三角形的斜边长 421 范例2-27 求直角三角形的斜边长 421 ∷相关函:hypot函 2.1.28 获取多项式的值 421 范例2-28 获取多项式的值 421 ∷相关函:poly函 2.2 多项式的计算 422 2.2.1 一维多项式求值 422 范例2-29 一维多项式求值 422 ∷相关函:polyval函 2.2.2 二维多项式求值 424 范例2-30 二维多项式求值 424 ∷相关函:tdpolyval函 2.2.3 复系一维多项式求值 425 范例2-31 复系一维多项式求值 425 ∷相关函:cppolyval函 2.2.4 多项式相乘 427 范例2-32 多项式相乘 427 ∷相关函:polymul函 2.2.5 复系多项式相乘 428 范例2-33 复系多项式相乘 428 ∷相关函:cppolymul函 2.2.6 多项式除法 430 范例2-34 多项式除法 430 ∷相关函:polydiv函 2.2.7 复多项式相除 432 范例2-35 复多项式相除 432 ∷相关函:cppolydiv函 2.3 复运算 435 2.3.1 复乘法 435 范例2-36 复乘法 435 ∷相关函:cpmul函 2.3.2 复除法 436 范例2-37 复除法 436 ∷相关函:cpdiv函 2.3.3 复 437 范例2-38 复 437 ∷相关函:cppower函 2.3.4 复的n次方根 439 范例2-39 复乘法 439 ∷相关函:cproot函 2.3.5 复 441 范例2-40 复 441 ∷相关函:polyval函 2.3.6 复 442 范例2-41 复 442 ∷相关函:cplog函 2.3.7 复正弦 443 范例2-42 复正弦 443 ∷相关函:cpsin函 2.3.8 复余弦 444 范例2-43 复余弦 444 ∷相关函:cpcos函 2.4 随机的产生 445 2.4.1 产生0~1之间均匀分布的随机 446 范例2-44 0~1之间均匀分布的随机 446 ∷相关函:edisrnd函 2.4.2 产生0~1之间均匀分布的随机序列 447 范例2-45 0~1之间均匀分布的随机序列 447 ∷相关函:edisrndsq函 2.4.3 产生任意区间内均匀分布的随机 448 范例2-46 产生任意区间内均匀分布的随机 448 ∷相关函:itervalrnd函 2.4.4 产生任意区间内均匀分布的随机序列 450 范例2-47 产生任意区间内均匀分布的随机序列 450 ∷相关函:itervalrndsq函 2.4.5 产生任意均值与方差的正态分布的随机 451 范例2-48 任意均值与方差的正态分布的随机 451 ∷相关函:nordisrnd函 2.4.6 产生任意均值与方差的正态分布的随机序列 453 范例2-49 任意均值与方差的正态分布随机序列 453 ∷相关函:nordisrndsq函 2.5 矩阵运算 454 2.5.1 实矩阵相乘 454 范例2-50 实矩阵相乘 454 ∷相关函:matrixmul函 2.5.2 复矩阵相乘 456 范例2-51 复矩阵相乘 456 ∷相关函:cpmatrixmul函 2.5.3 一般实矩阵求逆 458 范例2-52 一般实矩阵求逆 458 ∷相关函:matrix_inverse函 2.5.4 一般复矩阵求逆 462 范例2-53 一般复矩阵求逆 462 ∷相关函:multi_matrix_inverse函 2.5.5 对称正定矩阵的求逆 465 范例2-54 对称正定矩阵的求逆 465 ∷相关函:symmetric_positive_definite_matrix函 2.5.6 托伯利兹矩阵求逆的特兰持方法 467 范例2-55 托伯利兹矩阵求逆的特兰持方法 467 ∷相关函:toeplitz_inv函 2.5.7 求一般行列式的值 470 范例2-56 求一般行列式的值 470 ∷相关函:determinant_value函 2.5.8 求矩阵的秩 472 范例2-57 求矩阵的秩 472 ∷相关函:determinant_rank函 2.5.9 对称正定矩阵的乔里斯基分解与行列式求值 474 范例2-58 对称正定矩阵的乔里斯基分解 474 ∷相关函:cholesky_method函 2.5.10 矩阵的三角分解 476 范例2-59 矩阵的三角分解 476 ∷相关函:triangular_decomposition函 2.5.11 一般实矩阵的QR分解 478 范例2-60 一般实矩阵的QR分解 478 ∷相关函:qr_decomposition函 2.5.12 求广义逆的奇异值分解法 480 范例2-61 求广义逆的奇异值分解法 480 ∷相关函:singular_value_decomposition函 generalized_inverses函 2.6 矩阵特征值与特征向量的计算 489 2.6.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 489 范例2-62 约化对称矩阵为对称三对角阵 489 ∷相关函:Householder_method函 2.6.2 求对称三对角阵的全部特征值与特征向量 492 范例2-63 求对称三对角阵的全部特征值 492 ∷相关函:def_qr函 2.6.3 约化一般实矩阵为赫申伯格矩阵的初等相似变换法 496 范例2-64 约化实矩阵为赫申伯格矩阵 496 ∷相关函:trans_hessenbreg函 2.6.4 求赫申伯格矩阵全部特征值的QR方法 498 范例2-65 求赫申伯格矩阵全部特征值 498 ∷相关函:hessenbreg_qr函 2.6.5 求实对称矩阵特征值与特征向量的雅可比法 502 范例2-66 雅可比法求特征值与特征向量 502 ∷相关函:jacobi_method函 2.6.6 求实对称矩阵特征值与特征向量的雅可比过关法 505 范例2-67 雅可比过关法 505 ∷相关函:jacobi_clearance函 2.7 线性代方程组的求解 507 2.7.1 求解实系方程组的全选主元高斯消去法 508 范例2-68 全选主元高斯消去法 508 ∷相关函:gauss_elimination函 2.7.2 求解实系方程组的全选主元高斯—约当消去法 510 范例2-69 全选主元高斯—约当消去法 510 ∷相关函:gauss_jordan_elimination函 2.7.3 求解复系方程组的全选主元高斯消去法 513 范例2-70 求解复系方程组(方法一) 513 ∷相关函:plu_gauss函 2.7.4 求解复系方程组的全选主元高斯—约当消去法 516 范例2-71 求解复系方程组(方法二) 516 ∷相关函:plu_gauss_jordan函 2.7.5 求解三对角线方程组的追赶法 519 范例2-72 求解三对角线方程组的追赶法 519 ∷相关函:tridiagonal_chase函 2.7.6 求解一般带型方程组 521 范例2-73 求解一般带型方程组 521 ∷相关函:principal_gauss函 2.7.7 求解对称方程组的分解法 523 范例2-74 求解对称方程组的分解法 523 ∷相关函:equations_decomposition函 2.7.8 求解对称正定方程组的平方根法 526 范例2-75 求解对称正定方程组的平方根法 526 ∷相关函:equations_square_root函 2.7.9 求解大型稀疏方程组 528 范例2-76 求解大型稀疏方程组 528 ∷相关函:sparse_gauss_jordan函 2.7.10 求解托伯利兹方程组的列文逊方法 531 范例2-77 求解托伯利兹方程组 531 ∷相关函:toeplitz_levinson函 2.7.11 高斯—赛德尔迭代法 533 范例2-78 高斯—赛德尔迭代法 533 ∷相关函:gauss_seidel_iteration函 2.7.12 求解对称正定方程组的共轭梯度法 535 范例2-79 求解对称正定方程组的共轭梯度法 535 ∷相关函:conjugate_gradient_method函 2.7.13 求解线性最小二乘问题的豪斯荷尔德变换法 537 范例2-80 求解线性最小二乘问题 537 ∷相关函:least_square_householder函 2.7.14 求解线性最小二乘问题的广义逆法 540 范例2-81 求解线性最小二乘问题的广义逆法 540 ∷相关函:least_squares_reversion函 2.7.15 求解病态方程组 549 范例2-82 求解病态方程组 549 ∷相关函:morbid_equations函 2.8 非线性方程与方程组的求解 553 2.8.1 求非线性方程一个实根的对分法 553 范例2-83 对分法 553 ∷相关函:nonlinear_dichotomy函 2.8.2 求非线性方程一个实根的牛顿法 555 范例2-84 牛顿法 555 ∷相关函:newton_iterative函 2.8.3 求非线性方程一个实根的埃特金迭代法 557 范例2-85 埃特金迭代法 557 ∷相关函:aitken_iterative函 2.8.4 求非线性方程一个实根的连分式法 558 范例2-86 连分式法 558 ∷相关函:continued_fraction函 2.8.5 求实系方程全部根的QR方法 560 范例2-87 QR方法 560 ∷相关函:qr_all函 2.8.6 求实系方程全部根的牛顿下山法 563 范例2-88 求实系方程全部根的牛顿下山法 563 ∷相关函:newton_descent_all函 2.8.7 求复系方程全部根的牛顿下山法 568 范例2-89 求复系方程全部根的牛顿下山法 568 ∷相关函:newton_descent_complex函 2.8.8 求非线性方程组一组实根的梯度法 572 范例2-90 求非线性方程组一组实根的梯度法 572 ∷相关函:gradient_nonlinear函 2.8.9 求非线性方程组一组实根的拟牛顿法 574 范例2-91 求非线性方程组一组实根的拟牛顿法 574 ∷相关函:quasi_newton_nonlinear函 2.8.10 求非线性方程一个实根的蒙特卡洛法 577 范例2-92 求非线性方程的蒙特卡洛法 577 ∷相关函:monte_carlo_nonlinear函 2.8.11 求实函或复函方程一个复根的蒙特卡洛法 579 范例2-93 第二类椭圆积分 579 ∷相关函:monte_carlo_realplex函 2.8.12 求非线性方程组一组实根的蒙特卡洛法 581 范例2-94 第二类椭圆积分 581 ∷相关函:monte_carlo_equation函 2.9 插值与逼近 583 2.9.1 一元全区间插值 583 范例2-95 一元全区间插值 583 ∷相关函:interpolation_total函 2.9.2 一元三点插值 585 范例2-96 一元三点插值 585 ∷相关函:interpolation_three函 2.9.3 连分式插值 586 范例2-97 连分式插值 586 ∷相关函:interpolation_continued函 2.9.4 埃尔米特插值 588 范例2-98 埃尔米特插值 588 ∷相关函:interpolation_hermite函 2.9.5 埃特金逐步插值 590 范例2-99 第二类椭圆积分 590 ∷相关函:interpolation_aitken函 2.9.6 光滑插值 592 范例2-100 光滑插值 592 ∷相关函:interpolation_akima函 2.9.7 第一种边界条件的三样条函插值、微商与积分 595 范例2-101 第一种边界条件的三样条函 595 ∷相关函:cubic_spline_first函 2.9.8 第二种边界条件的三样条函插值、微商与积分 598 范例2-102 第二种边界条件的三样条函 598 ∷相关函:cubic_spline_second函 2.9.9 第三种边界条件的三样条函插值、微商与积分 600 范例2-103 第三种边界条件的三样条函 600 ∷相关函:cubic_spline_third函 2.9.10 二元三点插值 604 范例2-104 二元三点插值 604 ∷相关函:interpolation_point函 2.9.11 二元全区间插值 606 范例2-105 二元全区间插值 606 ∷相关函:interpolation_total函 2.9.12 最小二乘曲线拟合 608 范例2-106 最小二乘曲线拟合 608 ∷相关函:least_squares_fitting函 2.9.13 切比雪夫曲线拟合 611 范例2-107 切比雪夫曲线拟合 611 ∷相关函:chebyshev_fitting函 2.9.14 最佳一致逼近的里米兹方法 614 范例2-108 最佳一致逼近的里米兹方法 614 ∷相关函:remez_method函 2.9.15 矩形域的最小二乘曲面拟合 616 范例2-109 矩形域的最小二乘曲面拟合 616 ∷相关函:rec_fitting函 2.10 值积分 621 2.10.1 变步长梯形求积法 621 范例2-110 变步长梯形求积法 621 ∷相关函:integration_ladder函 2.10.2 变步长辛卜生求积法 623 范例2-111 变步长辛卜生求积法 623 ∷相关函:integration_simpson函 2.10.3 自适应梯形求积法 624 范例2-112 自适应梯形求积法 624 ∷相关函:integration_self_adaptive函 2.10.4 龙贝格求积法 626 范例2-113 龙贝格求积法 626 ∷相关函:integration_romberg函 2.10.5 计算一维积分的连分式法 627 范例2-114 计算一维积分的连分式法 627 ∷相关函:continued_fractions函 2.10.6 高振荡函求积法 629 范例2-115 高振荡函求积法 629 ∷相关函:higher_oscillatory_integration函 2.10.7 勒让德—高斯求积法 631 范例2-116 勒让德—高斯求积法 631 ∷相关函:legendre_gauss函 2.10.8 拉盖尔—高斯求积法 633 范例2-117 拉盖尔—高斯求积法 633 ∷相关函:laguerre_gauss函 2.10.9 埃尔米特—高斯求积法 634 范例2-118 埃尔米特—高斯求积法 634 ∷相关函:hermite_gauss函 2.10.10 切比雪夫求积法 635 范例2-119 切比雪夫求积法 635 ∷相关函:chebyshev函 2.10.11 计算一维积分的蒙特卡洛法 637 范例2-120 计算一维积分的蒙特卡洛法 637 ∷相关函:monte_carlo函 2.10.12 变步长辛卜生二重积分法 638 范例2-121 变步长辛卜生二重积分法 638 ∷相关函:simpson函 2.10.13 计算多重积分的高斯方法 640 范例2-122 计算多重积分的高斯方法 640 ∷相关函:gauss函 2.10.14 计算二重积分的连分式法 643 范例2-123 计算二重积分的连分式法 643 ∷相关函:continued_fractions_dual函 2.10.15 计算多重积分的蒙特卡洛法 645 范例2-124 计算多重积分的蒙特卡洛法 645 ∷相关函:monte_carlo_multi函 2.11 常微分方程组的求解 647 2.11.1 全区间积分的定步长欧拉方法 647 范例2-125 全区间积分的定步长欧拉方法 647 ∷相关函:euler_step函.. 2.11.2 积分一步的变步长欧拉方法 649 范例2-126 积分一步的变步长欧拉方法 649 ∷相关函:euler_variable函 2.11.3 全区间积分的维梯方法 651 范例2-127 全区间积分的维梯方法 651 ∷相关函:witty函 2.11.4 全区间积分的定步长龙格—库塔方法 653 范例2-128 全区间积分的定步长龙格—库塔方法实例位置 653 ∷相关函:runge_kutta函 2.11.5 积分一步的变步长龙格—库塔方法 655 范例2-129 积分一步的变步长龙格—库塔方法实例位置 655 ∷相关函:runge_kutta_steps函 2.11.6 积分一步的变步长基尔方法 657 范例2-130 积分一步的变步长基尔方法 657 ∷相关函:gill函 2.11.7 全区间积分的变步长默森方法 659 范例2-131 全区间积分的变步长默森方法 659 ∷相关函:merson函 2.11.8 积分一步的连分式法 662 范例2-132 积分一步的连分式法 662 ∷相关函:continued_step函 2.11.9 全区间积分的双边法 665 范例2-133 全区间积分的双边法 665 ∷相关函:bilateral函 2.11.10 全区间积分的阿当姆斯预报校正法 668 范例2-134 阿当姆斯预报校正法 668 ∷相关函:adams函 2.11.11 全区间积分的哈明方法 671 范例2-135 全区间积分的哈明方法 671 ∷相关函:hamming函 2.11.12 积分一步的特雷纳方法 675 范例2-136 积分一步的特雷纳方法 675 ∷相关函:treanor函 2.11.13 二阶微分方程边值问题的值解法 678 范例2-137 二阶微分方程边值问题的值解法 678 ∷相关函:finite_difference函 2.12 据处理与回归分析 680 2.12.1 随机样本分析 680 范例2-138 随机样本分析 680 ∷相关函:rndsplanalysis函 2.12.2 一元线性回归分析 683 范例2-139 一元线性回归分析 683 ∷相关函:liregression函 2.12.3 多元线性回归分析 685 范例2-140 多元线性回归分析 685 ∷相关函:mulliregression函 2.12.4 半对据相关 688 范例2-141 半对据相关 688 ∷相关函:fittinglogt函 2.12.5 对据相关 690 范例2-142 对据相关 690 ∷相关函:fittingln函 2.13 极值问题的求解 691 2.13.1 一维极值连分式法 691 范例2-143 一维极值连分式法 691 ∷相关函:extremum函 2.13.2 n维极值连分式法 693 范例2-144 n维极值连分式法 693 ∷相关函:nextremum函 2.13.3 不等式约束线性规划问题 696 范例2-145 不等式约束线性规划问题 696 ∷相关函:linearprogram函 2.14 学变换与滤波 700 2.14.1 傅里叶级逼近 700 范例2-146 傅里叶级逼近 700 ∷相关函:seriesfour函 2.14.2 快速傅里叶变换 702 范例2-147 快速傅里叶变换 702 ∷相关函:quickfft函 2.14.3 快速沃什变换 705 范例2-148 快速沃什变换 705 ∷相关函:quickfwt函 2.14.4 五点三平滑 706 范例2-149 五点三平滑 706 ∷相关函:smoothness函 2.14.5 卡尔曼滤波 708 范例2-150 卡尔曼滤波 708 ∷相关函:kalfilter函 2.14.6 α-β-γ滤波 713 范例2-151 α-β-γ滤波 713 ∷相关函:alphabgfilter函 2.15 特殊函 714 2.15.1 Gamma函 715 范例2-152 Gamma函 715 ∷相关函:Gamma函 2.15.2 不完全Gamma函 716 范例2-153 不完全Gamma函 716 ∷相关函:incomgam函 2.15.3 误差函 719 范例2-154 误差函 719 ∷相关函:errorfun函 2.15.4 第一类整数Bessel函 721 范例2-155 第一类整数Bessel函 721 ∷相关函:bessel1函 2.15.5 第二类整数Bessel函 724 范例2-156 第二类整数Bessel函 724 ∷相关函:bessel2函 2.15.6 变形第一类整数Bessel函 727 范例2-157 变形第二类整数Bessel函 727 ∷相关函:varbessel1函 2.15.7 变形第二类整数Bessel函 729 范例2-158 变形第二类整数Bessel函 729 ∷相关函:varbessel2函 2.15.8 不完全Beta函 734 范例2-159 不完全Beta函 734 ∷相关函:beta函 2.15.9 正态分布函 736 范例2-160 正态分布函 736 ∷相关函:gauss函 2.15.10 t-分布函 739 范例2-161 t-分布函 739 ∷相关函:tdistribution函 2.15.11 2-分布函 742 范例2-162 2-分布函 742 ∷相关函:xdistribution函 2.15.12 F-分布函 744 范例2-163 F-分布函 744 ∷相关函:fdistribution函 2.15.13 正弦积分 747 范例2-164 正弦积分 747 ∷相关函:sinintegral函 2.15.14 余弦积分 749 范例2-165 余弦积分 749 ∷相关函:cosintegral函 2.15.15 指积分 750 范例2-166 指积分 750 ∷相关函:expintegral函 2.15.16 第一类椭圆积分 752 范例2-167 第一类椭圆积分 752 ∷相关函:ellipseintegral1函 2.15.17 第二类椭圆积分 754 范例2-168 第二类椭圆积分 754 ∷相关函:ellipseintegral2函 2.16 本章小结 756 第3章 图形图像处理 757 3.1 字符屏幕 758 3.1.1 文本的输入与输出 758 范例3-1 文本的输入与输出 758 ∷相关函:printf函 scanf函 3.1.2 outtext、outtextxy函输出 759 范例3-2 outtext, outtextxy函输出 759 ∷相关函:outtext函 outtextxy函 3.1.3 设置文本格式 761 范例3-3 设置文本格式 761 ∷相关函:settextstyle函 3.1.4 设置图形文本排列方式 763 范例3-4 设置图形文本排列方式 763 ∷相关函:settextjustify函 3.1.5 设置用户字符比例 765 范例3-5 设置用户字符比例 765 ∷相关函:setusercharsize函 3.1.6 控制文本的明暗度 766 范例3-6 控制文本的明暗度 766 ∷相关函:highvideo函 normvideo函 lowvideo函 3.1.7 设置文本的前景色和背景色 767 范例3-7 设置文本的前景色和背景色 767 ∷相关函:textcolor函 textbackground函 3.1.8 字符窗口 770 范例3-8 字符窗口 770 ∷相关函:clrscr函 window函 gotoxy函 3.1.9 清除光标行尾字符 772 范例3-9 清除光标行尾字符 772 ∷相关函:clreol函 3.1.10 插入与删除行 773 范例3-10 插入与删除行 773 ∷相关函:insline函 delline函 3.1.11 屏幕参检测 774 范例3-11 屏幕参检测 774 ∷相关函:getgraphmode函 getmaxx函 getmaxy函 getmaxcolor函 cleardevice函 3.2 图形图像处理基础 777 3.2.1 绘制像素点 777 范例3-12 绘制像素点 777 ∷相关函:putpixel函 3.2.2 绘制直线 778 范例3-13 绘制直线 778 ∷相关函:line函 lineto函 linerel函 moveto函 moverel函 3.2.3 绘制矩形 780 范例3-14 绘制矩形 780 ∷相关函:rectangle函 3.2.4 绘制多边形 781 范例3-15 绘制多边形 781 ∷相关函:drawpoly函 3.2.5 绘制圆 783 范例3-16 绘制圆 783 ∷相关函:circle函 3.2.6 绘制椭圆 784 范例3-17 绘制椭圆 784 ∷相关函:ellipse函 fillellipse函 3.2.7 绘制圆弧 786 范例3-18 绘制圆弧 786 ∷相关函:arc函 3.2.8 绘制扇区 787 范例3-19 绘制扇区 787 ∷相关函:pieslice函 sector函 3.2.9 绘制条块 788 范例3-20 绘制条块 788 ∷相关函:bar函 bar3d函 3.2.10 图设置线型 790 范例3-21 设置线型 790 ∷相关函:Setlinestyle函 3.2.11 绘制填充矩形 792 范例3-22 绘制填充矩形 792 ∷相关函:setfillstyle函 floodfill函 3.2.12 填充多边形 795 范例3-23 填充多边形 795 ∷相关函:fillpoly函 3.2.14 设置用户图样 796 范例3-24 设置用户图样 796 ∷相关函:setfillpattern函 3.3 图形图像处理进阶 798 3.3.1 绘制彩色点云 798 范例3-25 绘制彩色点云 798 ∷相关函:rand函 kbhit函 3.3.2 绘制正多边形 799 范例3-26 绘制正多边形 799 ∷相关函:sin函 cos函 3.3.3 图形法绘制圆 801 范例3-27 图形法绘制圆 801 ∷相关函:drawCircle函 3.3.4 图形法绘制椭圆 803 范例3-28 图形法绘制椭圆 803 ∷相关函:ellipse1函 3.3.5 绘制正弦曲线 805 范例3-29 绘制正弦曲线 805 ∷相关函:lineto函 3.3.6 绘制抛物样条曲线 806 范例3-30 绘制抛物样条曲线 806 ∷相关函:parspl函 marking函 3.3.7 绘制布朗曲线 809 范例3-31 绘制布朗曲线 809 ∷相关函:CreateFractalImage函 Gauss函 3.3.8 动态绘制256色线条 811 范例3-32 动态绘制256色线条 811 ∷相关函:int86函 3.3.9 三原色亮度渐变 813 范例3-33 三原色亮度渐变 813 ∷相关函:geninterrupt函 3.3.10 三视图模拟 815 范例3-34 三视图模拟 815 ∷相关函:front_view函 top_view函 left_view函 perspective_view函 3.3.11 空间椭球模拟 817 范例3-35 空间椭球模拟 817 ∷相关函:trans函 draw函 3.3.12 百叶窗效果 820 范例3-36 百叶窗效果 820 ∷相关函:putpoint函 3.3.13 视觉欺骗 822 范例3-37 视觉欺骗 822 ∷相关函:dot函 circ函 bulb函 3.3.14 三维建筑物 824 范例3-38 三维建筑物 824 ∷相关函:liner函 rightlead函 leftlead函 shadow函 identifier函 3.4 组合图案绘制 830 3.4.1 一箭穿心图案 830 范例3-39 重新打开文件流 830 ∷相关函:draw函 arrow函 3.4.2 六叶图案 832 范例3-40 六叶图案 832 ∷相关函:arc函 3.4.3 花瓣形图案 833 范例3-41 花瓣形图案 833 ∷相关函:line函 3.4.4 雪花图案 835 范例3-42 雪花图案 835 ∷相关函:setviewport函 3.4.5 布艺图案 837 范例3-43 布艺图案 837 ∷相关函:fractal函 3.4.6 飘带图案 838 范例3-44 飘带图案 838 ∷相关函:line函 3.4.7 金刚石图案 840 范例3-45 金刚石图案 840 ∷相关函:line函 3.4.8 圆环图案 841 范例3-46 圆环图案 841 ∷相关函:circles函 3.4.9 肾型图案 843 范例3-47 肾型图案 843 ∷相关函:circle函 3.4.10 心脏型图案 844 范例3-48 心脏型图案 844 ∷相关函:circle函 3.4.11 鱼网图案 846 范例3-49 重新打开文件流 846 ∷相关函:arc函 3.4.12 沙丘图案 848 范例3-50 沙丘图案 848 ∷相关函:lineto函 3.4.13 正六边形螺旋图案 849 范例3-51 正六边形螺旋图案 849 ∷相关函:polygonc函 3.4.14 正方形螺旋拼块图案 851 范例3-52 正方形螺旋拼块图案 851 ∷相关函:polygonc函 block函 3.4.15 递归法绘制三角形图案 853 范例3-53 递归法绘制三角形图案 853 ∷相关函:elli函 3.4.16 玫瑰图案 855 范例3-54 玫瑰图案 855 ∷相关函:elli函 draw函 3.4.17 天空图案 859 范例3-55 天空图案 859 ∷相关函:int86函 3.4.18 Mandelbrot分形图案 864 范例3-56 Mandelbrot分形图案 864 ∷相关函:mandelbrot函 iterate函 3.5 窗体界面与报表设计 866 3.5.1 窗体设计 866 范例3-57 窗体设计 866 ∷相关函:mainform函 windowborder函 controls函 3.5.2 简单菜单设计 871 范例3-58 简单菜单设计 871 ∷相关函:initm函 showItems函 process 函 process3函 process1函 3.5.3 制作表格 877 范例3-59 制作表格 877 ∷相关函:putpixel函 3.5.4 折线图 878 范例3-60 折线图 878 ∷相关函:itoa函 settextjustify函 3.5.5 饼状图 880 范例3-61 饼状图 880 ∷相关函:pieslice函 3.5.6 柱状图 881 范例3-62 柱状图 881 ∷相关函:Funscore函 Drowxy 函 Fundrow函 3.6 动画制作 884 3.6.1 旋转的立体椭球 884 范例3-63 旋转的立体椭球 884 ∷相关函:setactivepage函 setvisualpage函 3.6.2 小球碰撞演示 887 范例3-64 小球碰撞演示 887 ∷相关函:imagsize函 getimage函 putimage函 3.6.3 飘动的旗帜 889 范例3-65 飘动的旗帜 889 ∷相关函:hor_wave_line函 ver_wave_line函 3.6.4 行驶中的小车 891 范例3-66 行驶中的小车 891 ∷相关函:imagsize函 getimage函 putimage函 3.6.5 不停动嘴巴的头 893 范例3-67 不停动嘴巴的头 893 ∷相关函:getaspectratio函 setaspectratio函 setactivepage函 setvisualpage函 3.6.6 旋转的太极图 898 范例3-68 旋转的太极图 898 ∷相关函:getpalette函 sector函 3.6.7 螺旋运动的圆斑 901 范例3-69 螺旋运动的圆斑 901 ∷相关函:drawgoal函 3.6.8 闪动的彩色圆斑 903 范例3-70 闪动的彩色圆斑 903 ∷相关函:drawgoal函 3.6.9 奔跑的小人 904 范例3-71 奔跑的小人 904 ∷相关函:line函 circle函 3.6.10 发射火箭 907 范例3-72 发射火箭 907 ∷相关函:DrawStar函 DrawGun函 DrawPlan函 3.6.11 擦玻璃 911 范例3-73 擦玻璃 911 ∷相关函:pieslice函 bioskey函 3.6.12 流星球 914 范例3-74 流星球 914 ∷相关函:getimage函 putimage函 3.6.13 简单时钟 916 范例3-75 简单时钟 916 ∷相关函:gettime函 3.6.14 立体时钟 918 范例3-76 立体时钟 918 ∷相关函:time函 3.6.15 飘雪 920 范例3-77 飘雪 920 ∷相关函:DrawSnow函 Pr函 3.6.16 制作火焰 923 范例3-78 制作火焰 923 ∷相关函:outportb函 pokeb函 3.6.17 天体系统 926 范例3-79 天体系统 926 ∷相关函:init_start函 roll函 3.6.18 扇动翅膀的蝴蝶 935 范例3-80 扇动翅膀的蝴蝶 935 ∷相关函:putpixel函 3.6.19 米奇 936 范例3-81 重新打开文件流 936 ∷相关函:imagsize函 getimage函 putimage函 3.7 本章小结 940 第4章 磁盘、目录和文件的操作 941 4.1 磁盘的操作 942 4.1.1 获取当前盘驱动器 942 范例4-1 获取当前盘驱动器 942 ∷相关函:getdisk函 4.1.2 设置当前驱动器 943 范例4-2 设置当前驱动器 943 ∷相关函:setdisk函 4.1.3 获取磁盘的可用空间 945 范例4-3 获取磁盘的可用空间 945 ∷相关函:getdfree函 4.1.4 测试软驱是否可用 946 范例4-4 测试软驱是否可用 946 ∷相关函:biosdisk函 4.2 目录的操作 948 4.2.1 创建目录 948 范例4-5 创建目录 948 ∷相关函:mkdir函 4.2.2 改变当前目录 950 范例4-6 改变当前目录 950 ∷相关函:chdir函 4.2.3 删除目录 952 范例4-7 删除目录 952 ∷相关函:rmdir函 4.3 文件的操作 953 4.3.1 用fopen函打开文件 953 范例4-8 用fopen函打开文件 953 ∷相关函:fopen函 4.3.2 打开系统temp目录中的文件 955 范例4-9 打开系统temp目录中的文件 955 ∷相关函:getenv函 4.3.2 使用低级函打开和关闭文件 957 范例4-10 使用低级函打开和关闭文件 957 ∷相关函:open函 close函 4.3.3 用fclose函关闭文件 959 范例4-11 用fclose函关闭文件 959 ∷相关函:fclose函 4.3.4 一性关闭所有被打开的文件 961 范例4-12 一性关闭所有被打开的文件 961 ∷相关函:fcloseall函 4.3.5 以字符为单位读写文件 963 范例4-13 以字符为单位读写文件 963 ∷相关函:fgetc函 fputc函 4.3.6 以字为单位读写文件 965 范例4-14 以字为单位读写文件 965 ∷相关函:getw函 putw函 4.3.7 以低级的方式读写文件 967 范例4-15 以低级的方式读写文件 967 ∷相关函:read函 write函 4.3.8 按结构读写文件 969 范例4-16 按结构读写文件 969 ∷相关函:read函 write函 4.3.9 格式化写文件 971 范例4-17 格式化写文件 971 ∷相关函:fprintf函 4.3.10 格式化读文件 972 范例4-18 格式化读文件 972 ∷相关函:fscanf函 4.3.11 以行为单位写文件 974 范例4-19 以行为单位写文件 974 ∷相关函:fputs函 4.3.12 以行为单位读文件 975 范例4-20 以行为单位读文件 975 ∷相关函:fgets函 4.3.13 将缓冲区内容写入文件 977 范例4-21 将缓冲区内容写入文件 977 ∷相关函:setbuf函 4.3.14 用lseek函定位文件指针 978 范例4-22 用lseek函定位文件指针 978 ∷相关函:lseek函 4.3.15 获取文件流的文件句柄 980 范例4-23 获取文件流的文件句柄 980 ∷相关函:fileno函 4.3.16 从文件流指针中导出文件句柄 982 范例4-24 从文件流指针中导出文件句柄 982 ∷相关函:fopen函 4.3.17 利用eof函判断文件是否结束 984 范例4-25 利用eof函判断文件是否结束 984 ∷相关函:eof函 4.3.18 利用feof函判断文件结尾 986 范例4-26 利用feof函判断文件结尾 986 ∷相关函:feof函 4.3.19 刷新I/O流 988 范例4-27 刷新I/O流 988 ∷相关函:fflush函 4.3.20 利用tmpnam函创建临时文件名 990 范例4-28 利用tmpnam函创建临时文件名 990 ∷相关函:tmpnam函 4.3.21 创建真正的临时文件 992 范例4-29 创建真正的临时文件 992 ∷相关函:tmpfile函 4.3.22 创建文件 993 范例4-30 创建文件 993 ∷相关函:creat函 4.3.23 在指定目录中创建唯一文件 995 范例4-31 在指定目录中创建唯一文件 995 ∷相关函:creattemp函 4.3.24 利用creatnew函创建新文件 996 范例4-32 利用creatnew函创建新文件 996 ∷相关函:creatnew函 4.3.25 删除文件 998 范例4-33 删除文件 998 ∷相关函:remove函 4.3.26 查找文件获取文件的路径 1000 范例4-34 查找文件获取文件的路径 1000 ∷相关函:searchpath函 4.3.27 分解文件路径 1001 范例4-35 分解文件路径 1001 ∷相关函:fnsplit函 4.3.28 建立文件完全路径名 1003 范例4-36 建立文件完全路径名 1003 ∷相关函:fnmerge 函 4.3.29 读取文件分配表信息 1005 范例4-37 读取文件分配表信息 1005 ∷相关函:getfat函 getfatd函 4.3.30 判断读写所在的文件的位置 1007 范例4-38 判断读写所在的文件的位置 1007 ∷相关函:ftell函 4.3.31 重命名文件 1009 范例4-39 重命名文件 1009 ∷相关函:rename函 4.3.32 判断访问文件的模式 1011 范例4-40 判断访问文件的模式 1011 ∷相关函:access函 4.3.34 设置文件访问模式 1013 范例4-41 设置文件访问模式 1013 ∷相关函:chmod函 4.3.35 显示文件的属性 1015 范例4-42 显示文件的属性 1015 ∷相关函:_chmod函 4.3.36 检测文件流的错误 1017 范例4-43 检测文件流的错误 1017 ∷相关函:ferror函 4.3.37 判断文件的长度 1019 范例4-44 判断文件的长度 1019 ∷相关函:filelength函 4.3.38 通过句柄设置打开文件的方式 1022 范例4-45 通过句柄设置打开文件的方式 1022 ∷相关函:setmode函 4.3.39 读取文件的时间和日期标记 1023 范例4-46 读取文件的时间和日期标记 1023 ∷相关函:getftime函 4.3.40 设置文件的时间和日期标记 1026 范例4-47 设置文件的时间和日期标记 1026 ∷相关函:setftimet函 4.3.41 改变文件的长度 1028 范例4-48 改变文件的长度 1028 ∷相关函:chsize函 4.3.42 控制文件打开操作的读写模式 1029 范例4-49 控制文件打开操作的读写模式 1029 ∷相关函:umask函 4.3.43 复制文件句柄 1032 范例4-50 复制文件句柄 1032 ∷相关函:dup函 4.3.44 强制复制文件句柄 1033 范例4-51 强制复制文件句柄 1033 ∷相关函:dup2函 4.3.45 用句柄判断读写所在的文件的位置 1036 范例4-52 用句柄判断当前文件指针的位置 1036 ∷相关函:tell函 4.3.46 根据当前位置定位文件指针 1038 范例4-53 根据当前位置定位文件指针 1038 ∷相关函:fseek函 4.3.47 获取文件句柄的信息 1039 范例4-54 获取文件句柄的信息 1039 ∷相关函:fstat函 4.3.48 重新打开文件流 1041 范例4-55 重新打开文件流 1041 ∷相关函:freopen函 4.4 本章小结 1043 第5章 系统调用 1045 5.1 时间和日期的操作 1046 5.1.1 获取当前的时间和日期 1046 范例5-1 获取当前时间和日期 1046 ∷相关函:time函 5.1.2 让程序延时指定的时间段 1047 范例5-2 让程序延时指定的时间段 1047 ∷相关函:delay函 5.1.3 比较两个时间 1048 范例5-3 比较两个时间 1048 ∷相关函:difftime函 5.1.4 读BIOS计时器 1050 范例5-4 读BIOS计时器 1050 ∷相关函:biostime函 5.1.5 比较两个时间获取当地时间 1051 范例5-5 获取当地时间 1051 ∷相关函:localtime函 5.1.6 获取格林威治平时 1052 范例5-6 获取格林威治平时 1052 ∷相关函:gmtime函 5.1.7 获取DOS系统时间 1054 范例5-7 获取DOS系统时间 1054 ∷相关函:gettime函 5.1.8 获取DOS系统日期 1055 范例5-8 获取DOS系统日期 1055 ∷相关函:getdate函 5.1.9 设置DOS系统时间 1057 范例5-9 设置DOS系统时间 1057 ∷相关函:settime函 5.1.10 设置DOS系统日期 1059 范例5-10 设置DOS系统日期 1059 ∷相关函:setdate函 5.1.11 获取时区信息 1061 范例5-11 获取时区信息 1061 ∷相关函:ftime函 5.2 BIOS的操作 1062 5.2.1 利用BIOS获取打印机的状态 1062 范例5-12 利用BIOS获取打印机的状态 1062 ∷相关函:biosprint函 5.2.2 获取Ctrl+Break信息 1064 范例5-13 获取CTRL+BREAK信息 1064 ∷相关函:getcbrk函 5.2.3 暂时挂起程序 1066 范例5-14 暂时挂起程序 1066 ∷相关函:sleep函 5.2.4 控制声音 1067 范例5-15 控制声音 1067 5.2.5 利用bdos函访问DOS服务 1068 范例5-16 利用bdos函访问DOS服务 1068 ∷相关函:bdos函 5.2.6 获取BIOS常规内存量 1071 范例5-17 获取BIOS常规内存量 1071 ∷相关函:biosmemory函 5.2.7 获取寄存器设置信息 1072 范例5-18 获取寄存器设置信息 1072 ∷相关函:segread函 5.3 内存的操作 1074 5.3.1 给内存区域赋值 1074 范例5-19 给内存区域赋值 1074 ∷相关函:memset函 5.3.2 获取时区信息复制内存区域 1076 范例5-20 复制内存区域 1076 5.3.3 复制内存区域指定的字节 1078 范例5-21 复制内存区域指定的字节 1078 ∷相关函:memccpy函 5.3.4 获取时区信息 1080 范例5-22 比较两个无符号字符组 1080 5.3.5 交换字符串的两个相邻字节内容 1082 范例5-23 交换字符串的两个相邻字节内容 1082 ∷相关函:swab函 5.3.6 利用brk函改变堆的大小 1084 范例5-24 利用brk函改变堆的大小 1084 ∷相关函:brk函 5.3.7 获取指定内存单元内容 1086 范例5-25 获取指定内存单元内容 1086 5.3.8 设置指定内存单元内容 1088 范例5-26 设置指定内存单元内容 1088 5.4 本章小结 1090 索引... 1091
本文件中讲述了c语言经典的282个案例,由浅入深。有利于提高广大爱好c语言编程的人员。 其中包括: 第1章 初识C语言 1 实例001 第一个C语言程序 2 实例002 一个完整的C语言程序 2 实例003 输出名言 3 实例004 用TC 2.0打开文件 4 实例005 计算正方形的周长 5 第2章 简单的C程序 6 实例006 输出一个正方形 7 实例007 输出一个三角形 8 实例008 一个简单的求和程序 9 实例009 求10! 10 实例010 3个由小到大排序 11 实例011 猴子吃桃 13 实例012 阳阳买苹果 14 第3章 算法入门 15 实例013 任意次方后的最后三位 16 实例014 计算某日是该年的第几天 16 实例015 婚礼上的谎言 18 实例016 百元买百鸡 19 实例017 打渔晒网问题 20 实例018 判断三角形的类型 22 实例019 直接插入排序 23 实例020 希尔排序 25 实例021 冒泡排序 26 实例022 快速排序 27 实例023 选择排序 28 实例024 归并排序 29 实例025 二分查找 31 实例026 分块查找 32 实例027 哈希查找 34 实例028 斐波那契列 37 实例029 哥德巴赫猜想 38 实例030 尼科彻斯定理 39 第4章 常用据类型 41 实例031 值型常量的使用 42 实例032 字符型变量的使用 42 实例033 求100~200之间的素 43 实例034 利用#输出三角形 44 实例035 十进制转换为二进制 45 实例036 n进制转换为十进制 46 实例037 小球下落问题 48 实例038 巧分苹果 49 实例039 老师分糖果 50 实例040 IP地址形式输出 51 实例041 特殊的完全平方 52 实例042 一三平方 54 实例043 求等差列 55 实例044 亲密 56 实例045 自守 57 第5章 运算符与表达式 60 实例046 求二元一不定方程 61 实例047 可逆素 63 实例048 判断闰年 64 实例049 黑纸与白纸 65 实例050 阿姆斯特朗 67 实例051 最大公约和最小公倍 67 实例052 求一元二次方程的根 69 实例053 自然对的底e的计算 70 实例054 满足abcd=(ab+cd)2的 70 实例055 整数加减法练习 71 实例056 判断整倍 73 实例057 阶梯问题 73 实例058 乘积大于和的 74 实例059 求各位之和为5的 75 第6章 据输入与输出函 77 实例060 使用字符函输入/输出字符 78 实例061 输出相对的最小整数 79 实例062 将小写字母转换为大写字母 80 实例063 水池注水问题 80 实例064 用*号输出图案 81 实例065 输出一个字符的前驱字符 82 实例066 求学生总成绩和平均成绩 83 实例067 回文素 84 第7章 选择和分支结构程序设计 86 实例068 判断 87 实例069 判断字母是否为大写 88 实例070 检查字符类型 89 实例071 求最低分和最高分 90 实例072 模拟自动售货机 91 实例073 计算工资 93 实例074 平方和值判断 94 实例075 加油站加油 95 实例076 简单计算器 97 第8章 循环结构 98 实例077 使用while语句求n! 99 实例078 使用while为用户提供 菜单显示 100 实例079 一元钱的兑换方案 102 实例080 特殊等式 103 实例081 打印乘法口诀表 104 实例082 平方和运算的问题 105 实例083 求从键盘中输入字符的个 106 实例084 打印杨辉三角 108 实例085 求总问题 109 实例086 彩球问题 110 实例087 新同学年龄 112 实例088 灯塔量 113 实例089 计算12+22+…+102 114 实例090 循环显示随机 115 实例091 卖西瓜 116 实例092 银行存款问题 117 实例093 统计不及格的人 118 实例094 猜字游戏 119 第9章 组 123 实例095 求各元素之和 124 实例096 使用二维组保存据 125 实例097 计算字符串中有多少个单词 126 实例098 不使用strcpy()函实现 字符串复制功能 127 实例099 逆序存放据 129 实例100 相邻元素之和 130 实例101 选票统计 131 实例102 使用组统计学生成绩 132 实例103 查找组中的最值 134 实例104 判断一个是否存在组中 135 实例105 求二维组对角线之和 136 实例106 模拟比赛打分 137 实例107 矩阵的转置 139 实例108 设计魔方阵 141 实例109 字符升序排列 142 实例110 在指定位置插入字符 144 实例111 删除字符串中的连续字符 146 实例112 统计各种字符个 147 实例113 字符串替换 148 实例114 回文字符串 150 实例115 字符串加密和解密 151 实例116 对调最大与最小位置 153 第10章 函编程基础 155 实例117 输出两个中的最大值 156 实例118 判断 157 实例119 递归解决年龄问题 158 实例120 递归解决分鱼问题 159 实例121 小分离 160 实例122 求任意的n 161 实例123 固定格式输出当前时间 163 实例124 设计函计算学生平均身高 164 实例125 求组元素中的最小值 165 实例126 打印1~5的阶乘 166 实例127 求最大公约和最小公倍 167 实例128 求直角三角形的斜边 168 实例129 相对的最小整数 169 实例130 当前时间转换 170 实例131 显示程序运行时间 171 实例132 显示当前日期及时间 172 实例133 设置DOS系统日期 173 实例134 设置DOS系统时间 174 实例135 读取并设置BIOS的时钟 175 实例136 任意大写字母转小写 176 实例137 字符串复制到指定空间 176 实例138 查找位置信息 177 实例139 复制当前目录 179 实例140 产生唯一文件 180 实例141 不同亮度显示 181 实例142 字母检测 182 实例143 建立目录 183 实例144 删除目录 184 实例145 对组进行升序和降序排序 185 实例146 设置组合键 187 实例147 获取当前日期与时间 188 实例148 获取当地日期与时间 189 实例149 获取格林尼治平时 190 实例150 设置系统日期 191 实例151 获取BIOS常规内存容量 193 实例152 读/写BIOS计时器 194 实例153 获取CMOS密码 195 实例154 获取Ctrl+Break消息 197 实例155 鼠标中断 198 实例156 设置文本显示模式 200 实例157 显卡类型测试 204 实例158 获取系统配置信息 206 实例159 访问系统temp中的文件 209 实例160 控制扬声器声音 210 实例161 获取Caps Lock键状态 211 实例162 获取环境变量 212 实例163 贪吃蛇游戏 213 实例164 五子棋游戏 219 实例165 弹力球游戏 227 第11章 指针 235 实例166 使用指针实现整数排序 236 实例167 指向结构体变量的指针 237 实例168 使用指针输出组元素 238 实例169 使用指针查找列中的 最大值和最小值 240 实例170 使用指针的指针输出字符串 241 实例171 使用指向指针的指针对 字符串排序 242 实例172 使用返回指针的函查找 最大值 244 实例173 使用指针连接两个字符串 245 实例174 用指针实现逆序存放 组元素值 247 实例175 用指针组构造字符串组 248 实例176 用指针函输出学生成绩 249 实例177 寻找相同元素的指针 251 实例178 查找成绩不及格的学生 252 实例179 使用指针实现冒泡排序 254 实例180 输入月份号并输出英文月份名 255 实例181 使用指针插入元素 256 实例182 使用指针交换两个组 中的最大值 257 实例183 输出二维组有关值 259 实例184 输出二维组任一行 任一列值 260 实例185 将若干字符串按照字母 顺序输出 262 实例186 用指向函的指针比较大小 263 实例187 寻找指定元素的指针 265 实例188 字符串的匹配 266 第12章 常用据结构 269 实例189 比较计 270 实例190 找出最高分 271 实例191 信息查询 272 实例192 候选人选票程序 274 实例193 计算开机时间 276 实例194 取出整型据的高字节据 277 实例195 使用共用体存放学生和 老师信息 278 实例196 使用共用体处理任意类型据 279 实例197 输出今天星期几 281 实例198 创建单向链表 282 实例199 创建双向链表 284 实例200 创建循环链表 287 实例201 使用头插入法建立单链表 289 实例202 双链表逆序输出 291 实例203 约瑟夫环 293 实例204 创建顺序表并插入元素 294 实例205 合并两个链表 296 实例206 单链表节点逆置 298 实例207 应用栈实现进制转换 300 实例208 用栈实现行编辑程序 303 实例209 用栈设置密码 306 实例210 括号匹配检测 310 实例211 用栈及递归计算多项式 313 实例212 链队列 315 实例213 循环缓冲区问题 318 实例214 简单的文本编辑器 321 第13章 位运算操作符 326 实例215 使二进制特定位翻转 327 实例216 将输入的左移两位并输出 327 实例217 编写循环移位函 328 实例218 取出给定16位二进制 的奇位 330 实例219 取一个整数的后四位 331 实例220 求一个的补码 332 实例221 普通的位运算 333 实例222 整数与0异或 334 第14章 存储管理 335 实例223 使用malloc()函分配内存 336 实例224 调用calloc()函动态分 配内存 337 实例225 为具有3个组元素的 组分配内存 338 实例226 为二维组动态分配内存 338 实例227 商品信息的动态存放 340 第15章 预处理和函类型 341 实例228 用不带参的宏定义求 平行四边形面积 342 实例229 使用宏定义实现组值 的互换 343 实例230 编写头文件包含圆面积的 计算公式 344 实例231 利用宏定义求偶和 345 实例232 利用文件包含设计输出模式 346 实例233 使用条件编译隐藏密码 347 第16章 文件读写 349 实例234 关闭所有打开的文件 350 实例235 同时显示两个文件的内容 352 实例236 创建文件 353 实例237 格式化读写文件 355 实例238 创建临时文件 357 实例239 成块读写操作 358 实例240 随机读写文件 360 实例241 以行为单位读写文件 362 实例242 查找文件 364 实例243 重命名文件 364 实例244 删除文件 366 实例245 删除文件中的记录 367 实例246 文件内容复制 369 实例247 错误处理 370 实例248 合并两个文件信息 373 实例249 统计文件内容 375 实例250 读取磁盘文件 376 实例251 将据写入磁盘文件 378 实例252 显示目录内同类型文件 379 实例253 文件分割 382 实例254 文件加密 384 实例255 自毁程序 386 实例256 明码序列号保护 388 实例257 非明码序列号保护 389 实例258 恺撒加密 391 实例259 RSA加密 394 实例260 获取当前磁盘空间信息 396 实例261 DES加密 398 实例262 获取系统配置信息 403 实例263 获取寄存器信息 405 第17章 图形图像处理 407 实例264 绘制直线 408 实例265 绘制矩形 409 实例266 绘制表格 411 实例267 绘制立体窗口 412 实例268 绘制椭圆 414 实例269 绘制圆弧线 415 实例270 绘制扇区 417 实例271 绘制空心圆 418 实例272 绘制箭头 419 实例273 绘制正弦曲线 420 实例274 绘制彩带 421 实例275 绘制黄色网格填充的椭圆 423 实例276 绘制红色间隔点填充的 多边形 424 实例277 绘制五角星 425 实例278 颜色变换 427 实例279 彩色扇形 428 实例280 输出不同字体 429 实例281 相同图案的输出 431 实例282 设置文本及背景颜色 433

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值