如何实现对函数的隐藏,看完就会
当你写了一个函数可以实现某些功能时,你要给其他人使用,却不想让别人看到你写的函数的内容,这时你就可以通过对函数内容进行隐藏来达到目的,函数提供了对过程的封装和细节的隐藏,那么今天我们就来看看如何对函数进行隐藏: 这里以上篇博客写的Swap函数为例,这里先给出全部代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void Swap(int *px, int *py)
{
int tmp = *
用函数实现初始化数组、 清空数组、数组元素的逆置
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void Empty(int arr[],int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
arr[i] = 0;
}
}
void reverse(int arr[],int sz)
{
int left = 0;
int right = sz - 1;
int tmp = 0;
求第n个斐波那契数(分别用递归和非递归两种方法求解)
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55……这个数列从第3项开始,每一项都等于前两项之和。 这里分别用递归和非递归的方法实现: 递归
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int fib(int n)
{
if (n <= 2)
{
return 1;
}
else
{
return fib(n - 2) + fi
三种方法实现strlen函数
我们知道,strlen函数是计算字符串长度的函数,那么要实现strlen函数主要就是得到字符串长度,那么 怎样才能得到字符串长度呢?如果是整形的数组,我们可以通过下标来寻找,可是这是字符串,我们就要了解字符串了。 这里定义一个字符串 char *str = "abcdef";这里我们可以看到字符串里有'a','b','c','d','e','f',其实字符串后还有一个'\0',用来表示字符串的结束,当字符串中出现'\0'时,标志这个字符串结束。我们可以由此入手,将字符逐个与'\0'比较,若相等
三子棋(井字棋),说没玩过的都没童年
这里我创建了一个“三子棋”的项目,里面有一个头文件game.h和两个源文件text.c 、game.c。 "text.c":text.c源文件放的是main函数,菜单打印menu函数和一个游戏game函数;
#include "game.h"
void menu()
{
printf("**************************\n");
printf("*** 1.game ***\n");
printf("*** 0.exit
回味童年,经典扫雷再升级
这里完成一个c语言的扫雷游戏: 游戏要求: 雷盘可以展开 游戏结束显示所用时间 第一次无论走哪都不会被炸死 这个创建一个扫雷项目,包含一个game.h头文件和两个分别为text.c和game.c的源文件。 text.c源文件:包含主函数main()、菜单函数menu()、游戏函数game();
#include"game.h"
void menu()
{
printf("********************\n");
printf("***** 1.play *****\n")
汉诺塔问题(看完就记住)
汉诺塔问题:有三个柱子,初始柱a,辅助柱b和目标柱c;在初始柱上有着n个圆盘(圆盘放置规则,大的在下小的在上),对圆盘从上到下依次编号从1到n。将圆盘从初始柱a移到目标柱c上的问题就是汉诺塔问题。 解题思路: (1)以C盘为中介,从a柱将1至n-1号盘移至b柱; (2)将a柱中剩下的第n号盘移至c柱; (3)以a柱为中介;从b柱将1至n-1号盘移至c柱。 下面是通过递归实现汉诺塔问题的c代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.
模拟实现strcpy函数功能(优化改进)
strcpy函数,字符串拷贝函数,传入两个参数,将第二个参数的值拷贝到第一个中去。 首先,给出一个普通的代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void my_strcpy(char *str1, char *str2)
{
while (*str2)
{
*str1 = *str2;
str1++;
str2++;
}
*str1 = *str2;
}
i
c语言按位异或^的应用实例
1.若a ^ b = c; 则有a ^ c = b, b ^ c = a; 例:将两个整形变量交换(不创建临时变量) 这里就可以用到上面得到的规律来写,在写代码之前先给上面的规律附上具体值来验证一下: 10的二进制 01010 20的二进制 10100 01010 11110 11110 ^ 10100 ^ 10100 ^ 01010 11110 01010 10100
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
杨氏矩阵查找数字(递归和非递归)
杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 要求:时间复杂度小于O(N); 例: 1 2 3 4 5 6 7 8 9 这里时间复杂度O(N) = row + col; //行数+列数 要使时间复杂度小于O(N),则必须从右上角开始走或者从左下角开始,如图所示,最长也是5,小于行数+列数 这里就这两种策略来写,分别采用递归和非递归的方式: 我在代码中写了4个函数皆可实现要求: 1. Seek1(); //非递归 右上角开始
strlen函数详解
在c语言中,strlen函数,引用<string.h>头文件,作用是计算字符串长度。 定义 : size_t strlen ( const char * str ); 这里有两处说明: 1.返回类型size_t size_t 可以看作 unsigned long ,是无符号长整形。 2.参数用 const 修饰 const 修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。然而 const 的位置不同,被限制的对象 也不相同,这里写三个代码比较一下: (1)const char
struts2 <action>无法使用通配符解决办法
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qwl755/article/details/83899480 在我们使用struts2的时候,肯定不想每一个方法就写一<action>,所以通常我们会使用通配符,简化我们的代码。 <action name="userAction_*" class="userAction" method="{1}" > <result name="login">/login.jsp</result> <resul
angular国际化
随着世界各地Web访问量的增加,作为开发者的我们也在不断让应用国际化、本地化。当用 户访问我们的应用时,他应该能够在运行时立即切换语言环境。 鉴于我们正在开发的是AngularJS客户端应用,尤其不希望用户必须刷新页面或者访问一个 完全不同的URL。当然,AngularJS可以很容易地调整那些国际化读者的本机语言环境,或许通 过为不同语言生成不同模板的方式为应用提供服务。 然而,这个过程可能会很麻烦,当我们想要改变应用的布局时会发生什么情况?每个独立的 模板都需要重新构建和部署。而这个过程应该
anglar进度条+判断
<tr ng-repeat="result in queryMsgTask"> <td>{{result.title}}</td> <td>{{result.content}}</td> <td>{{result.page}}</td> <td>{{result.templateId}}</td> <td>{{result.openId}}</td> <td> {{msgStatusToChinese(result.status)}} <span style="display:none;">{
Asp.Net套用母版页后元素ID不一致之个人总结
Asp.Net套用母版页后元素ID不一致之个人总结来自森大科技官方博客http://www.cnsendblog.com/index.php/?p=102在内容页里,在这个标签对里:<asp:ContentID="content"ContentPlaceHolderID="MainContent"runat="server">
周排行