程序片段(01):01.杨辉三角.c

内容概要:杨辉三角

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 10
  4. //01.杨辉三角:
  5. // 1.图形转换:将标准杨辉三角采用标准数组进行模拟
  6. // 2.确定标准数组的图形描述关系:
  7. // (1).数组当中第一列的所有元素以及正对角线的所有元素都为1
  8. // (2).数组当中的其它元素等于上一行左一列
  9. // 3.数组模拟杨辉三角的诀窍!
  10. // 将整个杨辉三角向左倾斜成为标准的二维数组
  11. int main01(void)
  12. {
  13. int intArrArr[N][N] = { 0 };
  14. for (int i = 0; i < N; ++i)
  15. {
  16. for (int j = 0; j <= i; ++j)
  17. {
  18. if (0 == j || i == j)
  19. intArrArr[i][j] = 1;
  20. else//核心代码
  21. intArrArr[i][j] = intArrArr[i - 1][j - 1] + intArrArr[i - 1][j];
  22. }
  23. }
  24. //模拟杨辉三角的标准数组打印方式
  25. for (int i = 0; i < N; ++i)
  26. {
  27. for (int j = 0; j <= i; ++j)
  28. {
  29. printf("%4d", intArrArr[i][j]);
  30. }
  31. printf("\n");
  32. }
  33. //杨辉三角打印方式
  34. for (int i = 0; i < N; ++i)
  35. {//19=10*4/2-1-i*2
  36. printf("%*c", 19 - i*2, '\0');//printf();当中的*表示预订宽度,scanf();当中的*表示忽略宽度
  37. for (int j = 0; j <= i; ++j)
  38. {
  39. printf("%4d", intArrArr[i][j]);
  40. }
  41. printf("\n");
  42. }
  43. system("pause");
  44. }

程序片段(02):01.Array.c+02.二维数组实战.c+03.二维数组转置.c

内容概要:02.二维数组本质

  1. ///01.Array.c
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. //01.二维数组本质:
  5. // 1.二维数组的数组名本质:
  6. // 就是整个二维数组的首个数组元素首地址
  7. // 2.二维数组当中的数组元素和行元素区分:
  8. // 就二维数组整体而言:
  9. // 每个数组元素都只是一个数组元素
  10. // 每个行元素当中包含有多个数组元素
  11. // 就一维数组整体而言:
  12. // 每个数组元素都只是一个行元素
  13. // 注意事项:
  14. // 1.所有数组的存储方式都是采取线程存储:
  15. // 存储特点:连续+类型相同
  16. // 2.所有线性存储方式的数据结构都可以采取
  17. // 线性方式进行顺序规律的初始化方式初始
  18. // 3.二维数组也是采取的静态初始初始化方式
  19. // 也就是长度必须采用常量进行标识
  20. // 4.数组的静态初始化特点:
  21. // (1).一个大括号代表一个维度
  22. // (2).只要存在前置元素初始化,那么后面的所有数组元素
  23. // 都会默认进行初始化为0的操作
  24. // (前置:必须从首个"数组元素"开始,否则不会出现连续默认初始化为0的现象)
  25. int main01(void)
  26. {
  27. int intArrArr[3][4] = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
  28. for (int i = 0; i < 3; ++i)
  29. {
  30. for (int j = 0; j < 4; ++j)
  31. {
  32. //%p<==>%#x(将数值以16进制以及携带进制标识的方式进行打印)
  33. //&intArrArr[i][j]与intArr[i]+j等价的原因:intArrArr[i]表示的是二维数组当中每个一维数组的首个元素的地址(也就是每个一维数组的地址)
  34. printf("%2d,%p,%p", intArrArr[i][j], &intArrArr[i][j], intArrArr[i] + j);
  35. }
  36. printf("\n");
  37. }
  38. //对二维数组的不同看待方式会有不同的效果!
  39. // 将二维数组看做为一维数组的处理方式,
  40. // 那么以一维数组的数组元素获取方式,就是在获取每个数组元素的首地址
  41. printf("%p,%p,%p \n", intArrArr[0], intArrArr[1], intArrArr[2]);
  42. system("pause");
  43. }
  1. ///02.二维数组实战.c
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #define N 10
  5. int intArrArr[N][N];
  6. //01.不引入任何变量实现二维矩阵数组的标准数据规律化赋值方式:
  7. // 表达式:intArrArr[i][j]=i*N+1+j;//从1开始进行的规律化赋值
  8. int main02(void)
  9. {
  10. for (int i = 0; i < N; ++i)
  11. {
  12. for (int j = 0; j < N; ++j)
  13. {
  14. printf("%3d", intArrArr[i][j] = i * N + j + 1);//举行数组赋值的规律表达式(不引入任何其他变量)
  15. }
  16. printf("\n");
  17. }
  18. system("pause");
  19. }
  20. //02.二维数组当中的特殊数据统计方式:
  21. // sumA:表示统计所有
  22. // sumB:统计每行
  23. // sumC:统计每列
  24. // sumD:统计正斜线
  25. // sumE:统计反斜线
  26. int main03(void)
  27. {
  28. int sumA = 0;
  29. int sumD = 0;
  30. int sumE = 0;
  31. for (int i = 0; i < N; ++i)
  32. {//表示行
  33. int sumB = 0;
  34. for (int j = 0; j < N; ++j)
  35. {//表示列
  36. printf("%4d", intArrArr[i][j] = i*N + 1 + j);
  37. sumA += intArrArr[i][j];
  38. sumB += intArrArr[i][j];
  39. //if (i == j)
  40. // sumD += intArrArr[i][j];
  41. if (i + j == N - 1)
  42. sumE += intArrArr[i][j];
  43. }
  44. printf("sumB = %d \n", sumB);
  45. sumD += intArrArr[i][i];
  46. printf("\n");
  47. }
  48. printf("\n\n");
  49. for (int j = 0; j < N; ++j)
  50. {//表示列
  51. int sumC = 0;
  52. for (int i = 0; i < N; ++i)
  53. {//表示行
  54. sumC += intArrArr[i][j];
  55. }
  56. printf("sumC = %d \n", sumC);
  57. }
  58. system("pause");
  59. }
  1. ///03.二维数组转置.c
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. //01.对数组的各种转置操作:
  5. // 1.转置:正转置,翻转置,翻页转置
  6. // 相当于对二维平面的任意操作特点
  7. // 2.转置规律分析:
  8. // 就是直接将带转置的图形与
  9. // 转置之后的结果进行对比分析
  10. // 快速得出二维数组的转置规律
  11. //02.翻页转置效果总结:
  12. // 1.待转置数组与转置后数组特点:
  13. // 待转置数组:intArrArrA[N1][N2];
  14. // 转置后数组:intArrArrB[N2][N1];
  15. // 2.转置效果分类:转置线+翻页点
  16. // 反斜线转置:intArrArrA[j][i]
  17. // 上翻页:intArrArrB[i][j]
  18. // 下翻页:intArrArrB[N2-1-i][N1-1-j]
  19. // 正斜线转置:intArrArrA[N1-1-j][N2-1-j]
  20. // 上翻页:intArrArrB[i][j]
  21. // 下翻页:intArrArrB[N2-1-i][N1-1-j]
  22. // 规律:先确定转置线,再确定翻页点
  23. int main04(void)
  24. {
  25. /*
  26. //待转置数组
  27. 1 2 3 0
  28. 4 5 0 13
  29. 6 7 8 9
  30. //正常打印待转置数组
  31. */
  32. int intArrArrA[3][4] = { { 1, 2, 3 }, { 4, 5, 0, 13 }, { 6, 7, 8, 9 } };
  33. int intArrArrB[4][3] = { 0 };
  34. for (int i = 0; i < 3; ++i)
  35. {
  36. for (int j = 0; j < 4; ++j)
  37. {//待转置数组
  38. printf("%3d", intArrArrA[i][j]);
  39. }
  40. printf("\n");
  41. }
  42. printf("\n");
  43. //1 4 6
  44. //2 5 7//反斜线转置
  45. //3 0 8
  46. //0 13 9
  47. //特点:反斜线+以左下角下翻页:
  48. for (int i = 0; i < 4; ++i)
  49. {
  50. for (int j = 0; j < 3; ++j)
  51. {//转置后数组:正确打印方式=intArrArrB[j][i];
  52. printf("%3d", intArrArrB[i][j] = intArrArrA[j][i]);//以左下角为翻页点,反斜线为转置线,作为翻页转置效果
  53. }
  54. printf("\n");
  55. }
  56. printf("intArrArrB[i][j]<--intArrArrA[j][i] \n\n");
  57. //特点:反斜线+以左下角上翻页
  58. for (int i = 0; i < 4; ++i)
  59. {
  60. for (int j = 0; j < 3; ++j)
  61. {//转置后数组:逆向接收方式=intArrArrB[j][i];
  62. printf("%3d", intArrArrB[3 - i][2 - j] = intArrArrA[j][i]);//以右上角为翻页点,反斜线为转置线,作为翻页转置效果
  63. }
  64. printf("\n");
  65. }
  66. printf("intArrArrB[3-i][2-j]=intArrArrA[j][i] \n\n");
  67. //总结:翻页转置的效果相似,都是以斜对角线为基准进行转置,一个正向翻页,一个逆向翻页
  68. //9 13 0
  69. //8 0 3//正斜线转置
  70. //7 5 2
  71. //6 4 1
  72. for (int i = 0; i < 4; ++i)
  73. {
  74. for (int j = 0; j < 3; ++j)
  75. {
  76. printf("%3d", intArrArrB[i][j] = intArrArrA[2 - j][3 - i]);
  77. }
  78. printf("\n");
  79. }
  80. printf("intArrArrB[i][j]=intArrArrB[2-j][3-i] \n\n");
  81. for (int i = 0; i < 4; ++i)
  82. {
  83. for (int j = 0; j < 3; ++j)
  84. {
  85. printf("%3d", intArrArrB[3 - i][2 - j] = intArrArrA[2 - j][3 - i]);
  86. }
  87. printf("\n");
  88. }
  89. printf("intArrArrB[3-i][2-j]=intArrArrB[2-j][3-i] \n\n");
  90. system("pause");
  91. }
  92. #define row 2
  93. #define column 3
  94. //02.翻页转置规律大总结:
  95. // 先确定转置线,再确定翻页点
  96. int main05(void)
  97. {
  98. int intArrArrA[row][column] = { 1, 2, 3, 4, 5, 6 };
  99. printf("原样输出: \n");
  100. for (int i = 0; i < row; ++i)
  101. {
  102. for (int j = 0; j < column; ++j)
  103. {
  104. printf("%2d", intArrArrA[i][j]);
  105. }
  106. printf("\n");
  107. }
  108. printf("\n");
  109. int intArrArrB[column][row] = { 0 };
  110. printf("以反斜线为转置线,以左下角为翻页点,进行翻页转置! \n");
  111. for (int i = 0; i < column; ++i)
  112. {
  113. for (int j = 0; j < row; ++j)
  114. {
  115. printf("%2d", intArrArrB[i][j] = intArrArrA[j][i]);
  116. }
  117. printf("\n");
  118. }
  119. printf("\n");
  120. printf("以反斜线作为转置线,以右上角作为翻页点,进行翻页转置! \n");
  121. for (int i = 0; i < column; ++i)
  122. {
  123. for (int j = 0; j < row; ++j)
  124. {
  125. printf("%2d", intArrArrB[column - 1 - i][row - 1 - j] = intArrArrA[j][i]);
  126. }
  127. printf("\n");
  128. }
  129. printf("\n");
  130. printf("以正斜线作为转置线,以右下角作为翻页点,进行翻页转置! \n");
  131. for (int i = 0; i < column; ++i)
  132. {
  133. for (int j = 0; j < row; ++j)
  134. {
  135. printf("%2d", intArrArrB[i][j] = intArrArrA[row - 1 - j][column - 1 - i]);
  136. }
  137. printf("\n");
  138. }
  139. printf("\n");
  140. printf("以正斜线作为转置线,以左上角作为翻页点,进行翻页转置! \n");
  141. for (int i = 0; i < column; ++i)
  142. {
  143. for (int j = 0; j < row; ++j)
  144. {
  145. printf("%2d", intArrArrB[column - 1 - i][row - 1 - j] = intArrArrA[row - 1 - j][column - 1 - i]);
  146. }
  147. printf("\n");
  148. }
  149. printf("\n");
  150. system("pause");
  151. }

程序片段(03):03.Time.c

内容概要:高维数组

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //01.二维数组的初始化方式:
  4. // 奥数技巧:线性初始化方式
  5. // 注:凡是线性存储的数据结构都存在着线性的初始化方式
  6. //02.线性初始化的规律总结:
  7. // 1.采用一个循环结构控制循环次数(实质就是数组当中所含元素的个数)
  8. // 2.操控数组的时候规律:
  9. // intArrArr[变化慢的][变化快的] = i + 1;
  10. // 变化慢的:求模最低维数
  11. // 变化快的:取余最低维数
  12. // i+1:使得线性初始化值为1,2,3...(能够避免不必要的修改循环控制变量的值)
  13. // 注:%p<==>%#X的打印实质等价
  14. int main01(void)
  15. {
  16. //A 0 1 2 3
  17. //0 00 01 02 03
  18. //1 10 11 12 13
  19. //2 20 21 22 23
  20. //3 30 31 32 33
  21. int intArrArr[3][4] = { 0 };
  22. for (int i = 0; i < 12; ++i)
  23. {
  24. intArrArr[12 / 4][12 % 4] = i + 1;//二维数组的线性初始化方式
  25. }
  26. printf("%p \n", intArrArr);
  27. //printf("%#X \n", intArrArr);
  28. system("pause");
  29. }
  30. //03.三维数组的线性初始化总结:
  31. // 1.三维数组组成分析:
  32. // 本质:三维数组的具体模型-->立体结构(六个方向:上,下,左,右,前,后)
  33. // 特点:intArrArr[z][x][y];
  34. // z:代表立体结构纵坐标-->这是由二维到三维的转变维度
  35. // x:代表平面结构x坐标
  36. // y:代表平面结构y坐标
  37. // 2.三维数组的线性初始化方式详解:
  38. // intArrArrArr[z][x][y];
  39. // for (int i = 0; i < z*x*y; ++i)
  40. // intArrArrArr[i / (x*y)][i % (x*y) / y][i % (x*y) % y] =i + 1;
  41. // i / (x*y):代表当前索引所指向的立体结构(第几层)
  42. // i % (x*y) / y:代表当前索引所指向的立体结构的(不完全面)的第几行
  43. // i % (x*y) % y:代表当前索引所指向的立体结构的(不完全面)的第几列
  44. // 注:
  45. // 1.凡是数据结构为线性的存储结构,那么前置元素只要初始化为0,后置存储便会
  46. // 默认初始化为0(尤其是数组的初始化特点)
  47. // 2.数组通性特点:
  48. // 元素类型一致,连续内存存储[数组都是以线性内存结果进行的数据存储,因此才可以进行线性初始化赋值操作]
  49. // 3.内层优化技巧:
  50. // 能够减少不必要的运算过程就应当尽量减少
  51. // 比如:三维数组的初始化技巧,不必要使用三层循环结构,减少不不要的两层循环结构,采用一层结构进行搞定
  52. int main02(void)
  53. {
  54. int intArrArrArr[3][4][5] = { 0 };
  55. intArrArrArr[0][0][0] = 0;
  56. intArrArrArr[1][0][0] = 20;//intArrArrArr[1][2][0]=30;=>intArrArrArr[1][2][3]=33;
  57. intArrArrArr[2][0][0] = 40;
  58. printf("%p \n", intArrArrArr);//三维数组的首地址
  59. for (int i = 0; i < 60; ++i)
  60. {
  61. //intArrArrArr[60 / 20][60 % 20 / 5][60 % 20 % 5] = i;//性能优化操作-->游戏开发当中,少一层循环结构,多提升一些效率
  62. intArrArrArr[i / (4 * 5)][i % (4 * 5) / 5][i % (4 * 5) % 5] = i;
  63. //0,1,2-->0,1,2,3-->0,1,2,3,4
  64. }
  65. //intArrArrArr[i][j][k]-->程序性能优化:能够减少的循环层数就一定要进行相应的减少
  66. //intArrArrArr[(i*j*k)/(j*k)][(i*j*k)%(j*k)/k][(i*j*k)%(j*k)%k]
  67. system("pause");
  68. }
  69. //04.从0维数组到N维数组的推导过程:
  70. // 0维数组:就是一个变量
  71. // 实质:点
  72. // 1维数组:就是一个一维数组
  73. // 实质:线
  74. // 2维数组:就是一个二维数组
  75. // 实质:面
  76. // 3维数组:就是一个三维数组
  77. // 实质:立体
  78. // 4维数组:就是一个四维数组
  79. // 实质:立体+时间
  80. // 5维数组:就是一个五维数组
  81. // 实质:立体+时间+质量
  82. // 6维数组:就是一个六维数组
  83. // 实质:立体+时间+质量+能量
  84. // n维数组:就是一个N维数组
  85. // 实质:(n-1)维基础条件+第n维的条件
  86. //05.数组线性初始化特点:
  87. // 从第一层第一面第一个点开始进行逐个点的初始化
  88. // 从下层不断的往上层
  89. // 从一个面不断的往另外一个面
  90. // 从一个点不断的往一个点
  91. int main03(void)
  92. {
  93. int intArrArrArr[2][3][4] = { 0 };
  94. int num = 0;
  95. for (int z = 0; z < 2; ++z)//层结构(包含面)
  96. {//遍历2个平面
  97. for (int x = 0; x < 3; ++x)//面结构(包含行)
  98. {//遍历3个行数
  99. for (int y = 0; y < 4; ++y)//线结构(包含点)
  100. {//遍历4个列数
  101. printf("%3d, %p", intArrArrArr[z][x][y] = ++num, &intArrArrArr[z][x][y]);
  102. }
  103. printf("\n");
  104. }
  105. printf("\n\n");
  106. }
  107. system("pause");
  108. }

程序片段(04):01.Fun.c

内容概要:数组与函数

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //01.数组作为函数参数进行传递的特殊性质:
  4. // 数组作为函数的参数传递,会自动退化为指针,目的就是为了传递地址[数组-->指针-->地址]
  5. // 注:
  6. // 1.目的是为了节省资源,避免不必要的内存拷贝动作,提升程序性能(直接采用指针操作原始数据)
  7. // 2.数组名作为实参,就是指向首个数组元素的指针,数组名没有作为参数,就是表示整个数组的类型
  8. void testArrName(int intArr[10])//地址:数组是例外,数组传递的是指针,也就是地址,数组没有副本机制
  9. {
  10. printf("%p \n", intArr);
  11. intArr[3] = 1000;
  12. printf("sizeof(intArr) = %d \n", sizeof(intArr));//这里的实质就是求取地址这个整数所占用的内存字节数
  13. int intArrTest[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  14. printf("sizeof(intArrTest) = %d \n", sizeof(intArrTest));//数组没有用作函数实参进行传递,就是数据实际大小
  15. }
  16. int main01(void)
  17. {
  18. int intArr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  19. printf("%p \n", intArr);
  20. testArrName(intArr);
  21. for (int i = 0; i < 10; ++i)
  22. {
  23. printf("%d \n", intArr[i]);
  24. }
  25. system("pause");
  26. }

程序片段(05):01.枚举数组.c

内容概要:数组与枚举常量

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. enum person{ 吴伟, lzq, zb, yc, 李波 };//0,1,2,3...默认匹配的整数形式
  4. double yanZhiBiao[5] = { 97.9, 93.9, 88.9, 60.9, 98.9 };
  5. //01.枚举数组的特点:枚举+数组=结合使用(类似于查表法的使用)
  6. // 让枚举数据具备一定的比较特性
  7. // 查表法:已知一个索引,在已经存在的对应表当中进行数据查询
  8. int main01(void)
  9. {
  10. //让枚举数据具备一定的比较特性
  11. for (enum person people = 吴伟; people <= 李波; ++people)
  12. {
  13. printf("%lf \n", yanZhiBiao[people]);
  14. }
  15. system("pause");
  16. }

程序片段(06):01.命名.c

内容概要:起名工具

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <locale.h>
  5. //01.知识要点:
  6. // 1.随机数生成方式
  7. // 2.查表法的应用
  8. // 先定义表体内容,
  9. // 再定义查询内容
  10. int main01(void)
  11. {
  12. //time_t te;//定义时间类型
  13. //unsigned int seed = (unsigned int)time(&te);//获取随机数种子
  14. //srand(seed);//种植随机数种子
  15. srand((unsigned int)time(NULL));//种植随机数种子
  16. //int passLength = rand() % 10 + 6;//6~15:密码长度
  17. //2个字儿,3个字儿的密码生成,定住姓氏,随机名字
  18. char passChr[10] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };
  19. //for (int i = 0; i < passLength; ++i)
  20. //{
  21. // int num = rand() % 10;//随机获取组成密码的单个字符
  22. // printf("%c", passChr[num]);
  23. //}
  24. for (int i = 0; i < rand() % 10 + 6; ++i)
  25. {
  26. printf("%c", passChr[rand() % 10]);
  27. }
  28. printf("\n");
  29. system("pause");
  30. }
  31. //02.查表法很重要!
  32. int main02(void)
  33. {
  34. setlocale(LC_ALL, "zh-CN");
  35. wchar_t wcharS[8] = { L'龙', L'虎', L'大', L'伟', L'天', L'桂', L'三', L'财' };
  36. //putwchar(wcharS[0]);
  37. putwchar(L'吴');
  38. srand((unsigned int)time(NULL));
  39. for (int i = 0; i < rand() % 2 + 1; ++i)
  40. {
  41. putwchar(wcharS[rand() % 8]);
  42. }
  43. system("pause");
  44. }

程序片段(07):01.洗牌.c

内容概要:07.洗牌

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. //01.洗牌算法透析:
  5. // 原理:让任何一张牌有机会与其后面的任意一张牌进行交换
  6. // int randNum = 0;
  7. // for (int i = 0; i < 53; ++i)//只需要让倒数第二张牌和倒数第一张牌有交换几率就行了,倒数第一张牌没有后续的交换概率
  8. // {//由于最大索引为53-->然而前面已经保证了从后面一张牌开始-->因此需要1+X能够等于53-->rand()%(53-i)-->极限推理法
  9. // randNum = i + 1 + rand() % (53 - i);//(i+1)保证绝对不会发生本体交换特点a;rand()%(53-i)保证随机数合理,(53-i)防止出界
  10. // }
  11. int main01(void)
  12. {
  13. int intArr[54] = { 0 };
  14. printf("洗牌之前:\n");
  15. for (int i = 0; i < 54; ++i)
  16. {
  17. printf("%3d", intArr[i] = i + 1);
  18. }
  19. printf("\n\n");
  20. srand((unsigned int)(time(NULL)));//种植随机数种子
  21. for (int i = 0; i < 53; ++i)//少一次:为了避免最后一次没有交换对象
  22. {
  23. int num = i + 1 + rand() % (53 - i);
  24. intArr[i] = intArr[i] ^ intArr[num];
  25. intArr[num] = intArr[i] ^ intArr[num];
  26. intArr[i] = intArr[i] ^ intArr[num];
  27. }
  28. printf("洗牌之后:\n");
  29. for (int i = 0; i < 54; ++i)
  30. {
  31. printf("%3d",intArr[i]);
  32. }
  33. system("pause");
  34. }

20160205.CCPP体系详解(0015天)的更多相关文章

  1. 20160129.CCPP体系详解(0008天)

    程序片段(01):函数.c+call.c+测试.cpp 内容概要:函数 ///函数.c #include <stdio.h> #include <stdlib.h> //01. ...

  2. 20160226.CCPP体系详解(0036天)

    程序片段(01):01.多线程.c+02.多线程操作.c 内容概要:多线程 ///01.多线程.c #include <stdio.h> #include <stdlib.h> ...

  3. 20160208.CCPP体系详解(0018天)

    程序片段(01):main.c 内容概要:PointWithOutInit #include <stdio.h> #include <stdlib.h> //01.野指针详解: ...

  4. 20160206.CCPP体系详解(0016天)

    代码片段(01):.指针.c+02.间接赋值.c 内容概要:内存 ///01.指针 #include <stdio.h> #include <stdlib.h> //01.取地 ...

  5. 20160204.CCPP体系详解(0014天)

    程序片段(01):define.h+data.h&data.c+control.h&control.c+view.h&view.c+AI.h&AI.c+main.c 内 ...

  6. 20160203.CCPP体系详解(0013天)

    程序片段(01):数组.c+02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h> //0 ...

  7. 20160128.CCPP体系详解(0007天)

    以下内容有所摘取,进行了某些整理和补充 论浮点数的存储原理:float浮点数与double浮点数的二进制存储原理–>阶码 浮点数转二进制 1.整数int类型和浮点数float类型都是占用4个字节 ...

  8. 20160127.CCPP体系详解(0006天)

    程序片段(01):msg.c 内容概要:线程概念 #include <stdio.h> #include <stdlib.h> #include <Windows.h&g ...

  9. 20160217.CCPP体系详解(0027天)

    程序片段(01):TestCmd.c 内容概要:管道_字符串 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include < ...

随机推荐

  1. HDU 2852 KiKi's K-Number(树状数组+二分搜索)

    题意:给出三种操作 0 e:将e放入容器中 1 e:将e从容器中删除,若不存在,则输出No Elment! 2 a k:搜索容器中比a大的第k个数,若不存在,则输出Not Find! 思路:树状数组+ ...

  2. **apache环境下 禁止显示 index of/ 目录下(如何禁止访问网站根目录)

    比如: http://123.57.49.XX6// 当这样访问的时候,可能会列出网站的根目录 如何禁止列出网站目录,方法如下: 让别人知道你的网站目录结构直接查看你目录下的所有文件是很危险的一个事情 ...

  3. ****Web API 版本控制的几种方式

    个人建议:用content type,即放在Header里面!比如加一个Version:1.4.3 这篇文章写得很好,介绍了三种实现web api版本化的三种方式.我从评论里又收集到两种方式,所以一共 ...

  4. 我是如何学习 Linux 的

    为何要学习 Linux? 这个问题可能困扰着很多 Linux 初学者和爱好者,其实我也说不上来为何要学习 Linux,可能最实在的理由就是—-Linux 相关工作岗位很多.在“见到” Linux 的第 ...

  5. pku 1703(种类并查集)

    题目链接:http://poj.org/problem?id=1703 思路;个人觉得本质上还是和带权并查集一样的,只不过多了一个MOD操作,然后就是向量关系图稍微改动一下就变成种类并查集了,对于本题 ...

  6. MongoDB (五) MongoDB 数据库操作

    一.MongoDB创建数据库: use 命令 MongoDB use DATABASE_NAME 用于创建数据库.该命令将创建一个新的数据库,如果它不存在,否则将返回现有的数据库. 语法: use D ...

  7. 快速幂取模 POJ 3761 bubble sort

    题目传送门 /* 题意:求冒泡排序扫描k次能排好序的全排列个数 数学:这里有一个反序列表的概念,bj表示在j左边,但大于j的个数.不多说了,我也是看网上的解题报告. 详细解释:http://blog. ...

  8. NIM博弈的必胜取法

    #include<stdio.h> ; int a[Max]; int main() { int i,n,ans; int tmp; while(scanf("%d", ...

  9. JavaWeb项目开发案例精粹-第6章报价管理系统-07View层

    1. 2.back_index.html <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT= ...

  10. Linux命令行通配符

    如果我们想对一类文件批量操作,例如批量查看硬盘文件属性,那么正常命令是如下所示: [root@localhost Desktop]# ls /dev/sda1 [root@localhost Desk ...