c语言与程序
fool宋
Stay Hungry , Stay Foolish
展开
-
OCLint的部分规则(Basic 部分)
OCLint的部分规则(Basic 部分)对OCLint的部分规则进行简单翻译解释,有部分进行了验证以及进一步分析、测试。原创 2017-08-18 19:23:08 · 1704 阅读 · 0 评论 -
亲密数 c语言
若:a的所有因子(包括1但不包括自身)之和等于b,而b的所有因子之和也等于a则:a和b是一个亲密数对原创 2014-04-25 13:18:38 · 7149 阅读 · 0 评论 -
c语言 完全数
6=1+2+328=1+2+4+7+14496=1+2+4+8+16+31+62+124+2488128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064原创 2014-04-25 10:50:03 · 2374 阅读 · 0 评论 -
c语言 随机数
c语言 随机数原创 2014-04-25 10:17:46 · 1465 阅读 · 0 评论 -
stdio.h c头文件
一般会把用来#include的文件的扩展名叫 .h,称其为头文件。 #include文件的目的就是把多个编译单元(也就是c或者cpp文件)公用的内容,单独放在一个文件里减少整体代码尺寸;或者提供跨工程公共代码。stdio 就是指 “standard input & output"(标准输入输出)所以,源代码中如用到标准输入输出函数时,就要包含这个头文件!标准函数:i转载 2014-04-25 08:08:53 · 2404 阅读 · 0 评论 -
笨蛋得难题 (二)(来源:南阳理工大学ACM)java&&C
描述笨蛋就业了,并且是在上千应聘中脱颖而出的,和他一起脱颖而出的还有傻子。公司的老板对二人视为珍宝,为了激励他们的工作热情,给他们一小时发一次工资(很高兴吧)。但每次只发给一个人,并且每次发的工资可能不同(老板很厉害吧)。傻子和笨蛋为了证明自己比对方智商高,他们事先知道每次发的工资的多少。他们暗中达成协议:他们不是将工资平分,而是轮流领取。该领工资的人可以选择跳过一个或多个小时的工资,而领取后原创 2014-05-10 20:35:44 · 942 阅读 · 0 评论 -
stdlib.h 头文件
stdlib 头文件即standard library标准库头文件stdlib 头文件里包含了C、C++语言的最常用的系统函数该文件包含了C语言标准库函数的定义stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX转载 2014-04-25 08:35:34 · 5081 阅读 · 0 评论 -
system("pause")
system("pause");原创 2014-04-25 10:26:20 · 1637 阅读 · 0 评论 -
C语言字符串操作总结大全(超详细)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长转载 2014-04-21 09:49:38 · 878 阅读 · 0 评论 -
c语言字符串-常用操作(2)
1.字符串翻转#include #include void reserve(char* str){ assert(str != NULL); char * p1 = str; char * p2 = str-1; while(*++p2); p2 -= 1; while(p1<p2) { char c = *p1;原创 2015-01-27 15:02:47 · 998 阅读 · 0 评论 -
c语言字符串-常用操作(1)
1.查找子字符串在其他字符串中出现的次数#include int countSubStr(char* str,char* s){ char* s1; char* s2; int count = 0; while(*str!= '\0') { s1 = str; s2 = s; while(*s2 ==原创 2015-01-27 14:41:28 · 762 阅读 · 0 评论 -
c语言字符串-常用操作(3)删除空格
删除空格也是面试常见问题,刚看到题一般写了个复杂度较高的,后来改进下复杂度降低,和大家分享下:#include /** * 删除字符串空格 */void delSpace(char *str){ char *p = str; char *t =p; while (*p != '\0') { if (*p == ' ') {原创 2015-01-30 09:38:35 · 5414 阅读 · 0 评论 -
c语言字符串-常用操作(3) 字符串 翻转
字符串翻转(一般有两个类型):Hello World ---> dlroW olleHHello World ---> World Hello第一种类型见另一篇blog:字符串翻转第二种类型://// main.c//// Created by yjsong on 16/3/24.// Copyright © 2016年 yjsong.原创 2016-03-25 18:44:37 · 1004 阅读 · 0 评论 -
编程之美 计算1的个数 1~n中1的个数 --- 二进制中1的个数 ---总结
1.给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。例如:N=2,1,2出现了1个“1”。N=12,1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。2.给定一个十进制整数N,求其对应的二进制中“1”的个数问题一方法一:每个数字一位一位的计算(效率 不好)#include //计算每个数字中“1原创 2016-08-10 11:05:41 · 1640 阅读 · 0 评论 -
求第k个数,最小的K个数
遇到个问题,就是给定一个无序的数组,求最小的第k个数一个无序数组:9,22,78,77,12,88,10,18,99,45有序状态时是:9 10 12 18 22 45 77 78 88 99最小的第k(k=5)个数是 22最直接的办法就是排序,取出第k个数,这样显然效率太低。可以利用快排,只要保证第k个数的前面比自己小,后面的数 比自己大就OK原创 2016-08-17 00:10:29 · 816 阅读 · 3 评论 -
一个字节中存在着多少个二进位1
一个字节中二进位1的个数两个相似的方法,一个右移所查看的字节;一个查看左移1.#include int getOneBits(unsigned char num){ int count = 0; for(int i = 0; i < 8; i++) { if((num & (1 << i)) != 0) coun原创 2015-05-10 21:47:18 · 1690 阅读 · 0 评论 -
c语言 static
C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果有重复定义的话编译器就会报错。伴随着不同源文件变量和函数之间的相互引用以及相互独立的关系,产生了extern和static关键字。 下面,详细分析一下static关键字在编写程序时有的三大类用法: 一,static全局变量转载 2015-03-03 10:41:56 · 601 阅读 · 0 评论 -
不用判断条件,取a,b最大值
今天看到一个有意思的题目:爱立信面试题:已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者。腾讯面试题: 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句看到网友的答案:int getMax2(int a,int b){ int t = (a+b + fabs(a-b))/2; re原创 2015-02-27 17:57:43 · 3200 阅读 · 3 评论 -
有序数组变成乱序数组 乱序数组
之前遇到个问题,把一个有序的数组变成无序的数组,之前可能是想多了,有几个简单的方法1.在oc里有他自带的排序的方法可以修改一下:NSArray *mutableArr = [NSArray arrayWithObjects:@1,@2,@3,@4,@5,@6,@7,@8,@9,@10, nil]; mutableArr = [mutableArr sortedArrayUsin原创 2014-12-30 22:11:32 · 5212 阅读 · 1 评论 -
排序小结(1)-冒泡,快排(c语言实现)
1.冒泡排序(最常见的排序)#include /** * 冒泡排序 */void sort(int *a,int len){ int t; for(int i=0;i<len;i++) { for(int j=0;j<len-i-1;j++) { if(a[j]>a[j+1])原创 2015-01-30 09:35:30 · 838 阅读 · 0 评论 -
c语言 访问数组首地址的几种方式
#include int main(){ int arr[4][4]={0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15}; int i; for(i=0;i<4;i++) { printf("使用arr+i求得二维数组arr第%d行的起始地址为%d\n",i+1,arr+i);原创 2014-04-19 09:54:12 · 2405 阅读 · 0 评论 -
c语言 指针数组 数组指针
(1)int *p[4]: 定义的时指针数组。因为优先级关系,p先于[]结合,说明p是一个数组,然后在于*结合,说明数组p的元素是指向整型数据的指针,相当于4个整型指针变量,用于存放地址单元。(2)int(*p)[4]:定义的是数组指针,p先于*结合,形成一个指针,该指针指向的是有4个整型元素数组,p即为指向数组首元素地址的指针。#include int main(){原创 2014-04-19 09:22:22 · 706 阅读 · 0 评论 -
导弹拦截 动态规划
某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国导弹来袭。由于该系统还在试用阶段,所以只用一套系统,因此有可能不能拦截所有的导弹。输入第一行输入测试数据组数N(1接下来一行输入这组测试数据共有多少个导弹m(1接下来行输入导弹依次飞来的高度,所有原创 2013-10-31 20:33:50 · 1970 阅读 · 8 评论 -
动态规划 Buy Low, Buy Lower 逢低吸纳
“逢低吸纳”是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀:"逢低吸纳,越低越买"这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。给定连续的N天中每天的股价。你可以在任何一天购买一次股票,但是购买时的股价一定要比你上次购买时的股价低。写一个程序,求出最多能买几次股票。原创 2013-10-31 20:37:11 · 2168 阅读 · 1 评论 -
动态规划 最长非升/降子序列
在你的帮助下,蔚蓝来到了埃及,在金字塔里,蔚蓝看到了一个问题,传说,能回答出这个问题的人就能受到埃及法老的祝福,可是蔚蓝日夜奋战,还是想不出来,你能帮帮他么? 问题是这样的: 给定一个序列.求最长上升子序列(lis)p1例如65 158 170 299 300 155 207 389 LIS=。#include#defi原创 2013-10-31 20:49:30 · 2206 阅读 · 0 评论 -
ships 船 动态规划
有一个国家被一条何划分为南北两部分,在南岸和北岸总共有N个城镇,每一城镇在对岸都有唯一的友好城镇。任何两个城镇都没有相同的友好城镇。每一对友好城镇都希望有一条航线来往。于是他们向政府提出了申请。由于河终年有雾。政府决定不允许有任两条航线交叉(如果两条航线交叉,将有很大机会撞船)。你的任务是缟写一个程序来帮政府官员决定他们应拨款兴建哪些航线以使到没有出现交叉的航线最多。输入数原创 2013-10-31 20:44:35 · 1249 阅读 · 0 评论 -
最少费用购物 动态规划
最少费用购物?问题描述: 商店中每种商品都有标价。例如,一朵花的价格是2元。一个花瓶的价格是5 元。为了 吸引顾客,商店提供了一组优惠商品价。优惠商品是把一种或多种商品分成一组,并降价销 售。例如,3朵花的价格不是6元而是5元。2 个花瓶加1 朵花的优惠价是10 元。试设计一 个算法,计算出某一顾客所购商品应付的最少费用。 编程任务: 对于给定欲购商品的价格和数量,以及优惠转载 2013-10-31 21:00:13 · 16189 阅读 · 3 评论 -
合唱队形 动态规划
【合唱队形】 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1Ti+1>…>TK(1 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。原创 2013-10-31 20:39:44 · 2446 阅读 · 0 评论 -
多重背包,多种解法,动态规划
有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这个问题也进行了一下总结:并按思路把算法实现了一下:#include#include#define MAX 20#define MAXM 20#define MAXN 10#defin原创 2013-10-31 20:27:08 · 1358 阅读 · 0 评论 -
完全背包 多种解法 动态规划
完全背包是在N种物品中选取若干件(同一种物品可多次选取)放在空间为V的背包里,每种物品的体积为C1,C2,…,Cn,与之相对应的价值为W1,W2,…,Wn.求解怎么装物品可使背包里物品总价值最大。总结了一下,写出了几种方法,和大家交流学习#include#include#define MAX 20#define MAXM 20#define MAXN 10/* 背包原创 2013-10-31 20:22:31 · 1066 阅读 · 0 评论 -
滚动数组
滚动数组的作用在于优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。一个简单的例子:斐波那契数列:一般代码:#include#includeusing namespace转载 2013-11-20 20:58:58 · 993 阅读 · 0 评论 -
捕鱼和分鱼 java实现 c实现
捕鱼和分鱼 A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼? 这道题出自《C趣味程序百例》 刚开始原创 2013-11-07 20:38:33 · 2603 阅读 · 1 评论 -
从我做起振兴中华 蓝桥杯 Java C 及变型题
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 地上画着一些格子,每个格子里写一个字,如下所示: 从我做起振我做起振兴做起振兴中起振兴中华 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。 要求跳过的路线刚好构成“从我做起振兴中原创 2013-11-23 09:19:44 · 3497 阅读 · 0 评论 -
c语言 指针函数 函数指针
(1)指针函数其实就是一个原创 2014-04-19 15:23:01 · 696 阅读 · 0 评论 -
c语言 结构体
结构(struct) 结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。 结构中可以使用不同的数据类型。 1. 结构说明和结构变量定义 在Turbo C中, 结构也是一种数据类型, 可以使用结构变量, 因此, 象其它 类型的变量一样, 在使用结构变量时要先对其定义。 定义结构变量的一般格式为:原创 2014-04-19 20:05:58 · 861 阅读 · 0 评论 -
回车与换行的区别
符号 ASCII码 意义\n 10 换行NL\r 13 回车CR回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed在不转载 2014-03-07 23:32:22 · 790 阅读 · 0 评论 -
谁在说谎 c,java实现
张三说李四说慌,李四说王五说慌,王五说张三和李四都在说谎,问究竟谁在说谎,谁没说谎?#include int main(){ int a,b,c; for(a=0;a<=1;a++) { for(b=0;b<=1;b++) { for(c=0;c<=1;c++) { if((a&&!b||!a&&b)&&(b&&!c||!b&&c)&&(c&&a+原创 2013-11-07 21:04:05 · 3125 阅读 · 0 评论 -
街道问题,java,动态规划,奥赛经典,提高篇
【问题描述】 如图所示的矩形图中找到一条从左下角到右上角的最短路径,图中数字表示边的长度。只能向右或向上走。【输入文件】第一行两个数,N M,矩形的点有N行M列。(0,M)接下来N行每行M-1个数描述横向边的长度。接下来N-1行每行M个数描述纵向边的长度。边的长度小于10。【输出文件】一个数——最短路径长度。【输入样例】4 53 7 4 84 6 3 53 6原创 2013-11-17 21:07:57 · 2046 阅读 · 0 评论 -
拉丁矩阵 回溯 c java
现有n种不同形状的宝石,每种宝石有足够多颗。欲将这些宝石排列成m行n列的一个矩阵,m n,使矩阵中每一行和每一列的宝石都没有相同形状。试设计一个算法,计算出对于给定的m和n有多少种不同的宝石排列方案。#include"iostream"using namespace std;int **x;int count=0;int s;int t;int m;int n;原创 2013-11-27 15:06:41 · 2567 阅读 · 0 评论 -
排列宝石问题 回溯
问题描述:现有n种不同形状的宝石,每种n 颗,共n*n颗。同一种形状的n颗宝石分别具有n种不同的颜色c1,c2,…,cn中的一种颜色。欲将这n*n颗宝石排列成n行n列的一个方阵,使方阵中每一行和每一列的宝石都有n种不同形状和n种不同颜色。试设计一个算法,计算出对于给定的n,有多少种不同的宝石排列方案。 算法设计:对于给定的n,计算出不同的宝石排列方案数。 输入文转载 2013-11-27 14:56:00 · 4449 阅读 · 0 评论