![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C-C++-road
privacy_googol
古今之成大事业、大学问者,必经过三种之境界:‘昨夜西风凋碧树,独上高楼,望尽天涯路’。‘衣带渐宽终不悔,为伊消得人憔悴’。‘众里寻他千百度,蓦然回首,那人却在灯火阑珊处’。
展开
-
计算开机时间
#include <stdio.h>struct time/*定义结构体time,存储时间信息*/{ int hour; int minute; int second;}t;main(){ FILE *fp;/*定义文件类型指针fp*/ fp=fopen("Time","r");/*以只读方式打开文件Time*/ fread(&t,sizeof原创 2015-10-04 18:03:43 · 874 阅读 · 0 评论 -
15个教徒和15 个非教徒在深海上遇险
/*这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。*/#include <stdio.h>void main(){原创 2015-04-09 17:01:42 · 4002 阅读 · 0 评论 -
螺旋矩阵
/*(螺旋矩阵)【问题描述】数学上有一种矩阵叫旋转矩阵,非常的有意思,所谓旋转矩阵,就是在N阶矩阵中,起始数1置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。【输入】输入文件名"matrix.in"输入文件由一行或多行构成,每行由一个正整数N组成,(N不大于100)。输入文件的最后一行是'#' 表示文件结束。。【输出】输出文件名"estdout.pc2"对于每原创 2015-04-09 16:51:27 · 505 阅读 · 0 评论 -
数字分解
#include<stdio.h>#include<math.h>int main(){ int i; int n; while(scanf("%d",&n)!=EOF) { for(i=2;n!=1;i++) if(n%i==0){ n/=i;原创 2015-04-09 16:39:58 · 663 阅读 · 0 评论 -
卡片游戏3-STL
main(){ int n; scanf("%d", &n); for(int i=0; i<n; i++) q.push(i+1); while(!q.empty()) { printf("%d ", q.front()); q.pop(); q.push(q.front()); q.pop(); }原创 2015-04-09 16:00:15 · 414 阅读 · 1 评论 -
简单数据结构
队列的应用(如 排队面试、操作系统作业管理、约瑟夫问题)、栈应用(如迷宫问题、表达式求值)、树的判断、….原创 2015-04-09 12:09:52 · 410 阅读 · 0 评论 -
解决字符串问题的基础知识
解决字符串问题的基础知识首先保证以下问题已熟练掌握: 1、 字符串的常用处理函数能熟练调用 2、 判断回文; 3、 输入一个字符串,统计数字字符‘0’~‘9’分别出现的次数; 4、 能将任意长的数字串转化成整数(如大整数处理就需要此技术); 5、 删除一串字符中的指定字符,如删除“AB***CDE*FG***HIJ**”中的所有号,或者前缀号、后缀*号。 6、 子串定位。(翻译 2015-04-09 11:42:48 · 575 阅读 · 0 评论 -
01背包动态规划
#include "stdio.h"int V[200][200];//前i个物品装入容量为j的背包中获得的最大价值 int max(int a,int b) { if(a>=b) return a; else return b; } int KnapSack(int n,int w[],int v[],int x[],int C) {原创 2015-04-09 17:39:37 · 595 阅读 · 0 评论 -
IS IT A tree
/*IS IT A tree注意: 本代码只能针对是一个连通分量的图判断是否为树 !!!!!!! */#include<stdio.h>#include<string.h>#define M 50int Locate(int data[], int i, int x) ; //函数声明 int main(){ freopen("tree.in", "r", stdin);/原创 2015-04-09 17:36:27 · 457 阅读 · 0 评论 -
产生随机数
产生随机数【需要的头文件】:/*核心代码*/{ int i,min,max; srand(time(NULL));//可向计算机读取其时钟值,并把值自动设为随机数种子 min=100,max=100; for(i=1;i<=10;i++) printf("%d\n",min+rand()%(max-min)); return 0;原创 2015-04-09 17:21:57 · 327 阅读 · 0 评论 -
题目分析能力实战训练
一、扫雷(题目在代码源程序里) 1、 循环依次查看每个点周围有的八个点当中,多少个是雷。 2、 判断点为雷,count加1 3、修改对应矩阵的值/*扫雷游戏(难度系数:3)(输入文件:mine.txt,输出文件:estdout.pc2) 玩过扫雷游的朋友都知道,该游戏的目标是找出一个n*m矩阵内的所有的地雷,在本题中,你需要为每一个单元格统计出它周围地雷的个数,每个单元格最多有8原创 2015-04-09 17:06:33 · 1050 阅读 · 0 评论 -
回形蛇形矩阵
#include"stdio.h"void main(){ int i,j,n,m,k=1,a[100][100]; scanf("%d",&n); for(i=1;i<=n;i++) if(i%2==0) for(j=i,m=1;j>=1;j--,m++) { a[m][j]=k原创 2015-04-09 16:56:13 · 552 阅读 · 0 评论 -
卡片游戏(1)
#include<stdio.h>#define MAX 100+10main(){ int queue[MAX], front, rear; int n,i; scanf("%d", &n); for(i=0; i<n; i++) queue[i]=i+1; front=0; //尾指针指向队头元素 rear=n; //尾指针指向队原创 2015-04-09 15:34:27 · 494 阅读 · 0 评论 -
卡片游戏2-循环队列
/*循环队列 */#include<stdio.h>#define MAX 110 /*注意,这里不能写成 #define MAX 100+10 因为MAX要参与运算*/int main(){ int queue[MAX], front, rear; int n,i; scanf("%d", &n); for(i=0; i<n; i++) queue原创 2015-04-09 15:39:43 · 458 阅读 · 0 评论 -
使用循环链表实现约瑟夫环
约瑟夫算法:n个人围成一圈,每个人都有一个互不相同的密码,该密码是一个整数值,选择一个作为起点,然后顺时针从1到k(k为起点人手中的密码值)数数。数到K的人退出圈子,然后从下一个开始继续从1到j(刚退出圈子的人的密码)数数,数到j的人退出圈子。重复上面的过程,直到剩下最后一个人。#include "stdio.h"#define N 9#define OVERFLOW 0#define OK原创 2015-10-04 17:54:07 · 809 阅读 · 0 评论 -
完整的链表操作(定义-创建-插入-删除-输出)
#include<stdio.h> #include<stdlib.h>struct Student{ char cName[20]; //姓名 int iNumber; //学号 struct Student* pNext; //指向下一个结点的指针 };int iCount; //全局变量表示链表长度struct Student* Create(){原创 2015-10-03 19:05:07 · 560 阅读 · 0 评论 -
什么是回文数
//什么是回文数 /*正读和倒读都有意义的文字称为“回文”。例如,小白是一个名字,如果反过来,白小,也可以是一个人名, 这个人姓小名白。王融有诗《春游回文诗》中的诗句“风朝指锦幔,月晓照莲池”,反读也是有意义的,不信你读读。 而“回文数”,则是一种数字。例如,65856,这个数正读是65856,倒读也是65856,这样的数就是回文数。 数学中有著名的“回文数猜想”之谜,至今没有解决。该问题描原创 2015-05-18 19:25:30 · 9559 阅读 · 0 评论 -
齐天大圣蟠桃园吃桃子
//齐天大圣蟠桃园吃桃子 /*齐天大圣第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发现只剩下一个桃子了。那么,齐天大圣第一天共摘了多少个桃子! */ #include <stdio.h>main(){ int day,x1,x2; //定义da原创 2015-05-14 12:12:55 · 2316 阅读 · 0 评论 -
贵有恒,何必三更起五更眠;最无益,只怕一日曝十日寒
/*我从2012年开始走向程序员之路!在此期间,有太多的迷茫。今年已经是2015年了,今天与大家共勉一句使我在这条路上坚持下来的名言:贵有恒,何必三更起五更眠;最无益,只怕一日曝十日寒。 */ #include <stdio.h>main(){ printf("贵有恒,何必三更起五更眠;最无益,只怕一日曝十日寒。"); printf("\n");}原创 2015-05-14 11:46:20 · 2510 阅读 · 0 评论 -
苏苏买苹果
//苏苏买苹果/*苏苏买苹果,每个苹果0.8元,苏苏第一天买两个苹果,第二天开始每天买前一天的两倍,直到购买的苹果个数不超过100的最大值。那么,问题来了!苏苏每天平均花多少钱?*/ #include <stdio.h> main() { int n = 2,day = 0; //定义n,day为基本整型 float money = 0.0,ave; //定义money原创 2015-05-14 13:46:17 · 792 阅读 · 0 评论 -
知识点:用指向函数的指针作函数参数
//知识点:用指向函数的指针作函数参数/*题目:有两个整数a和b,由用户输入1,2或3.如输入1,程序就给出a和b中大者,输入2,就给出a和b中小者,输入3,则求a和b之和。 */ #include<stdio.h>main(){ int fun(int x,int y,int (*p)(int,int)); //fun函数声明 int max(int,int);原创 2015-05-10 08:34:47 · 742 阅读 · 0 评论 -
while的经典用法
S=1+1/2+1/3+1/4+…+1/100#include<stedio.h>main(){ double sum=0; int i=1; while(i<100) { sum=sum+1.0/i; i++; } printf("%f",sum); return 0; } s=10!#includ原创 2015-04-25 17:58:30 · 944 阅读 · 0 评论 -
最大公约数及最小公倍数
设计思路指引: 1. 在算两个数的最大公约数时,通常采用辗转相除的方法。 2. 最小公倍数和最大公约数之间的关系:两数相乘的积除以这两个数的最大公约数就是最小公倍数。原创 2015-04-16 21:34:43 · 378 阅读 · 0 评论 -
表达式求值
/*表达式求值,需要设置两个栈,操作符栈、数字栈。 add(x,y) sub(x,y) min(x,y) max(x,y) */#include<stdio.h>#include<ctype.h>#define MAX 300int main(){ freopen("express.in", "r", stdin); freopen("estdout.pc2",原创 2015-04-09 17:37:32 · 496 阅读 · 0 评论 -
C/C++的简单几何思想
一、轰炸问题 1、 依次用两点确定一条直线,判断后面的点是否在直线上。 2、 直线方程:(y-y1)/(x-x1)=(y2-y1)/(x2-x1) 3、 为了防止除数为0,将方程式变形(交叉相乘): (y-y1)(x2-x1)=(y2-y1)(x-x1)/*轰炸输入文件: "bomb.in" 输出文件: "estdout.pc2"问题描述"我该怎么办?"飞行员klux向你求助原创 2015-04-09 16:08:34 · 686 阅读 · 0 评论 -
T9键盘
/* 重庆第5届ACM题 : T9键盘:在手机上输入字符串,求手指移动的次数 */ #include<stdio.h>main(){ char s[50+1]; int b[50],i,k,T,count,n=1; scanf("%d", &T); //有T组输入 while(n<=T) { scanf("%s", s); //要原创 2015-04-09 11:56:22 · 1225 阅读 · 0 评论 -
三天打鱼两天晒网
三天出海打渔,回来用两天时间修补晾晒渔网,这是打渔的最佳方式。每天打渔每天晒网的方式是不可能的。出海打渔期间是不可能修补渔网的。 “三天打鱼,两天晒网”是俗语,不是成语! “三天打鱼,两天晒网”的正确含义是做每件事都有自己的正确方式,不能照搬,也不能蛮干,更不能偷懒。 学习必须坚持每天学习,不能三天学习,两天休息 打渔不能每天晒网,“三天打鱼,两天晒网”是打渔的最佳方式。//打渔晒网问题/原创 2015-04-24 07:36:41 · 1135 阅读 · 0 评论 -
数据结构:线性表
线性结构是n(n>=0)个结点的有穷序列。对于n>0的线性结构表示成: (a1,a2,… ai-1,ai,ai+1,…an) a1称为起始结点, an称为终端结点; ai-1称为 ai的直接前趋,ai+1称为 ai的直接后继。线性表是最常用且最简单的一种线性结构。线性表(Linear List) :由n(n≧0)个数据元素(结点)a1,a2, …an组成的有限序列。 其中数据元素的个数n定义为表的长度。当n=0时称为空表,常常将非空的线性表(n>0)记作:翻译 2015-04-07 09:48:16 · 916 阅读 · 0 评论 -
大数据:fac
#include <stdio.h>#include <string.h>#include <stdlib.h>void mul(char *a,char *b,char *c){int i;int j;int ca;int cb;int *s;ca=strlen(a);cb=strlen(b);s=(int*)malloc(sizeof(int)*(ca+cb));for(i原创 2015-04-07 09:01:06 · 439 阅读 · 0 评论 -
大数据:add
#include <stdio.h>#include <stdlib.h>#include <string.h>void add(char *s1,char *s2,char *ret){int len1=strlen(s1);int len2=strlen(s2);int max,min;if(len1>=len2) { max=len1; min=len原创 2015-04-07 08:55:01 · 335 阅读 · 0 评论 -
大数据导读
一、导入: 程序语言中规定了各种不同的数据形态,每种数据都有各自的范围空间。比如长整形数据为2的32次方减1:即2147483646。最多描述10位数。 例如 12345678912345678这样的整数就不可能储存在long变量中(例如C/C++等),我们称这为超长整数(或俗称大数运算)。介绍 原理 :用字符型的数组来存储所要计算的大数据。然后采用手工计算的方法来进行大数的加法原创 2015-04-06 18:06:57 · 447 阅读 · 0 评论 -
方幂之和构成一个递增的序列
给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列, 例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,” (该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,”) 请你求出这个序列的第N项的值(用10进制数表示)。 例如,对于k=3,N=100,正确答案应该是981。 每个测试数据原创 2015-04-06 17:44:07 · 1397 阅读 · 0 评论 -
Algorithm Gossip: 奇数魔方阵
说明: 将1到n(为奇数)的数字排列在nxn的方阵上,且各行、各列与各对角线的和必须相同解法 1在一行正中央,依次斜填切莫忘; 上出框界往下填,右出框界往左填; 重复下移一格填,出角重复一个样。#include <stdio.h> #define N 7 int main(void) { int i, j, key; int square[N+1][N+1] = {0};原创 2015-04-06 16:50:17 · 435 阅读 · 0 评论 -
c的入门
Fibonacci数列问题描述 圆的面积 序列求和A+B问题原创 2015-04-06 15:56:52 · 460 阅读 · 0 评论 -
子串定位
子串定位运算是字符串的常用运算之一。原创 2015-04-05 11:00:51 · 1322 阅读 · 0 评论 -
最值问题
找最小数,输出,并输出它的位置输入一些整数(不超过1000个),哪两个数最接近,输出结果?(1)假设答案只可能有一对数。(2)考虑答案可能有多对数的情况。原创 2015-04-04 23:38:05 · 425 阅读 · 0 评论 -
ACM基本输入模式,以开灯问题为例
开灯问题1: 有n个灯(编号分别为1,2,3…n),k个人, 第1个人打开所有的灯,第2个人把编号为2的倍数的灯关掉, 第3个人又将编号为3的倍数的灯找开,,如此类推。 问:最后有哪些灯是开着的?? 测试输入:7 3 正确输出:1 5 6 7#include<stdio.h>原创 2015-04-04 22:51:28 · 2574 阅读 · 0 评论 -
删除星号字符
写一个程序,它的功能是删除字符串中所有的“*”字符,结果仍然要求存在原字符数组中。 例如,输入“Ab**efG*HIJK***M” 输出结果字符串为“AbefGHIJKM”。原创 2015-04-04 23:09:33 · 1123 阅读 · 0 评论 -
大数据:mul
#include <stdio.h>#include <string.h>#include <stdlib.h>void mul(char *a,char *b,char *c){int i;int j;int ca;int cb;int *s;ca=strlen(a);cb=strlen(b);s=(int*)malloc(sizeof(int)*(ca+cb));for(原创 2015-04-07 09:08:13 · 486 阅读 · 0 评论 -
2015!
编码实现2015!思路: 1. 在写程序之前首先要理清楚求2015!的思路。求一个数n的阶乘也就是用 n*(n-1)(n-2)…*2*1,n为0和1时要单独考虑,此时它们的阶乘均为1. 2. 要将求得的阶乘最终结果定义为单精度或双精度型,如果定义为整型,很容易出现溢出现象。#include<stdio.h>main(){ int i=2,n=2015; double fac=原创 2015-04-24 07:51:56 · 406 阅读 · 0 评论