05 2012 档案
POJ 2742 统计字符数
摘要:时间限制:1000ms内存限制:65536kB描述判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多输入第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串每组测试数据之间有一个空行,每行数据不超过1000个字符且非空输出n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符样例输入2abbcccadfadffasdf样例输出c 3f 4(1)、源代码:#include <stdio.h>#include <string 阅读全文
posted @ 2012-05-11 20:25 谷堆旁边 阅读(1376) 评论(0) 推荐(0)
POJ 2715 谁拿了最多奖学金
摘要:时间限制:1000ms内存限制:65536kB描述某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;4) 西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;5) 班级贡献奖,每 阅读全文
posted @ 2012-05-11 20:23 谷堆旁边 阅读(1086) 评论(0) 推荐(0)
POJ 2800 垂直直方图
摘要:时间限制:1000ms内存限制:65536kB描述输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。输入输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。输出输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。样例输入THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.THIS IS AN EXAMPLE TO 阅读全文
posted @ 2012-05-11 20:23 谷堆旁边 阅读(1201) 评论(0) 推荐(0)
POJ 2677 肿瘤检测
摘要:时间限制:1000ms内存限制:65536kB描述一张CT扫描的灰度图像可以用一个N*N(0<N<100)的矩阵描述,矩阵上的每个点对应一个灰度值(整数),其取值范围是0-255。我们假设给定的图像中有且只有一个肿瘤。在图上监测肿瘤的方法如下:如果某个点对应的灰度值小于等于50,则这个点在肿瘤上,否则不在肿瘤上。我们把在肿瘤上的点的数目加起来,就得到了肿瘤在图上的面积。任何在肿瘤上的点,如果它是图像的边界或者它的上下左右四个相邻点中至少有一个是非肿瘤上的点,则该点称为肿瘤的边界点。肿瘤的边界点的个数称为肿瘤的周长。现在给定一个图像,要求计算其中的肿瘤的面积和周长。输入输入第一行包含 阅读全文
posted @ 2012-05-11 20:22 谷堆旁边 阅读(2501) 评论(0) 推荐(1)
POJ 2714 求平均年龄
摘要:时间限制:1000ms内存限制:65536kB描述班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。输入第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,取值为15到25。输出输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。样例输入21817样例输出17.50提示要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:printf("%.2f", num);(1)、源代码:#include <iostream>#include <cstdio 阅读全文
posted @ 2012-05-11 20:21 谷堆旁边 阅读(672) 评论(0) 推荐(0)
POJ 2713 肿瘤面积
摘要:时间限制:1000ms内存限制:65536kB描述在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。其它肿瘤内和肿瘤外的点都用255表示。现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)。已知肿瘤的边缘平行于图像的边缘。输入只有一个测试样例。第一行有一个整数n,表示正方形图像的边长。其后n行每行有n个整数,取值为0或255。整数之间用一个空格隔开。已知n不大于1000。输出输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数。样例输入5255 255 255 255 255255 0 0 0 255255 0 255 0 25 阅读全文
posted @ 2012-05-11 20:21 谷堆旁边 阅读(1447) 评论(1) 推荐(0)
POJ 1657 Distance on Chessboard
摘要:时间限制:1000m内存限制:65536kB描述国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间。如下图所示:王、后、车、象的走子规则如下:王:横、直、斜都可以走,但每步限走一格。后:横、直、斜都可以走,每步格数不受限制。车:横、竖均可以走,不能斜走,格数不限。象:只能斜走,格数不限。写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。输入第一行是测试数据的组数t(0 <= t <= 20)。以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。位置用"字母-数字"的形式表示,字 阅读全文
posted @ 2012-05-11 20:20 谷堆旁边 阅读(450) 评论(0) 推荐(0)
POJ 2808 校门外的树
摘要:时间限制:1000m内存限制:65536kB描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。马路上有一些区域要用来建地铁,这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。输入输入的第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M 阅读全文
posted @ 2012-05-11 20:18 谷堆旁边 阅读(5326) 评论(0) 推荐(0)
POJ 2880 句中最长的单词
摘要:时间限制:1000ms内存限制:65536kB描述输入一个英文句子,长度不超过40个字符。编写程序,输出句子中最长的一个单词。输入长度不超过40的字符串输出句中最长的单词样例输入This is a test sentence样例输出sentence提示1.输入只有一个句子,不需使用while2.若句尾有标点,则标点和最后一个单词可看成是一个单词,可以不用作额外判断3.假设句中最长的单词只有一个(1)、源代码:#include<iostream>#include<string>#include<sstream>usingnamespacestd;intmain 阅读全文
posted @ 2012-05-11 20:17 谷堆旁边 阅读(628) 评论(0) 推荐(0)
POJ 1005 I Think I Need a Houseboat
摘要:时间限制:1000ms内存限制:65536kB描述Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the state of Louisiana is actually shrinking by 50 square miles each year, due to erosion caused by the Mississippi River. Since Fred 阅读全文
posted @ 2012-05-11 20:17 谷堆旁边 阅读(290) 评论(0) 推荐(0)
POJ 2656 Unhappy Jinjin
摘要:时间限制:1000ms内存限制:65536kB描述Jinjin is a junior school student. Besides the classes in school, Jinjin's mother also arranges some supplementary classes for her. However, if Jinjin studies for more than eight hours a day, she will be unhappy on that day. On any day she gets unhappy, the more time she 阅读全文
posted @ 2012-05-11 20:16 谷堆旁边 阅读(299) 评论(0) 推荐(0)
POJ 3258 兔子产子
摘要:时间限制:1000ms内存限制:65536kB描述从前有一对长寿兔子,它们每一个月生一对兔子,新生的小兔子两个月就长大了,在第二个月的月底开始生它们的下一代小兔子,这样一代一代生下去,求解兔子增长数量的数列。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)输出输出有1行,每行输出对应一个输入。输出应是一个正整数序列,整数之间用空格分开。样例输入3321样例输出1 1 21 11(1)、源代码:#include<iostream>#include<vector>usingnamespacestd; 阅读全文
posted @ 2012-05-11 20:16 谷堆旁边 阅读(365) 评论(0) 推荐(0)
POJ 1218 THE DRUNK JAILER
摘要:时间限制:1000ms内存限制:65536kB描述A certain prison contains a long hall of n cells, each right next to each other. Each cell has a prisoner in it, and each cell is locked.One night, the jailer gets bored and decides to play a game. For round 1 of the game, he takes a drink of whiskey,and then runs down the h 阅读全文
posted @ 2012-05-11 20:15 谷堆旁边 阅读(223) 评论(0) 推荐(0)
POJ 3177 判决素数个数
摘要:时间限制:1000ms内存限制:65536kB描述输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。输入两个整数X和Y,X和Y的大小任意。输出输出一个整数,结果可以是0,或大于0的整数。样例输入1 100样例输出25(1)、源代码:#include<iostream>#include<cmath>usingnamespacestd;boolisPrime(inta){inti;if(a == 1)returnfalse;for(i = 2; i <= sqrt(1.0 * a); i++)if(!(a%i))returnfalse;returntrue;} 阅读全文
posted @ 2012-05-11 20:14 谷堆旁边 阅读(952) 评论(0) 推荐(0)
POJ 2027 No Brainer
摘要:时间限制:1000ms内存限制:65536kB描述Zombies love to eat brains. Yum.输入The first line contains a single integer n indicating the number of data sets.The following n lines each represent a data set. Each data set will be formatted according to the following description:A single data set consists of a line " 阅读全文
posted @ 2012-05-11 20:14 谷堆旁边 阅读(237) 评论(0) 推荐(0)
POJ 2870 求矩阵的加法
摘要:时间限制:1000ms内存限制:65536kB描述矩阵int a[3][3],矩阵int b[3][3]。矩阵的数据由用户输入。输出新的矩阵c=a+b. 输出格式:c00 c01 c02c10 c11 c12c20 c21 c22每个元素占4位。输入矩阵aa00 a01 a02a10 a11 a12a20 a21 a22矩阵bb00 b01 b02b10 b11 b12b20 b21 b22输出矩阵cc00 c01 c02c10 c11 c12c20 c21 c22样例输入1 2 34 5 67 8 97 8 9 4 5 61 2 3样例输出 8 10 12 8 10 12 ... 阅读全文
posted @ 2012-05-11 20:13 谷堆旁边 阅读(520) 评论(0) 推荐(0)
POJ 2882 Problem I
摘要:时间限制:1000ms内存限制:65536kB描述输入整数a和b,如果a能被b整除,就输出算式的商,否则输出整数商和余数,如果b=0,输出error。输入整数a和整数b输出商或者商和余数或者error样例输入100 1075 201 0样例输出103 15error(1)、源代码:#include<iostream>usingnamespacestd;intmain(){ints, t, a, b;while(cin >> a >> b){if(0 == b)cout <<"error\n";elseif(a%b)cout & 阅读全文
posted @ 2012-05-11 20:13 谷堆旁边 阅读(452) 评论(0) 推荐(0)
POJ 2883 Checking order
摘要:时间限制:1000ms内存限制:65536kB描述输入长度为5的数字串,检查是否是按从小到大的顺序排列,如果是,输出Yes;否则,输出No,并输出从小到大排序后的结果。输入长度为5的一串数字;输出判断结果及排序后的结果。样例输入1 3 5 7 95 3 44 7 31 1 2 2 3样例输出YesNo 3 3 5 7 44Yes(1)、源代码:#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;intmain(){inti;vector<int> v(5); 阅读全文
posted @ 2012-05-11 20:12 谷堆旁边 阅读(441) 评论(0) 推荐(0)
POJ 2888 字符串中的数字
摘要:时间限制:1000ms内存限制:65536kB描述输入一个字符串,长度不超过20,字符串中包含数字和非数字字符,将其中是数字的字符提取出来,对它们进行从小到大排序,非数字字符则忽略不计。输入若干行字符串输出每一个字符串中所有数字的升序排序。每个数字占四个字符位置。使用cout<< setw(4)<< num;处理完一行字符串换行一次。使用cout<< endl;样例输入31W 7Q9 2D24d t51 X9P样例输出 1 2 2 3 7 9 1 4 5 9提示1.由于有多组测试数据,要求使用while循环读取输入。如下:while(cin.getlin.. 阅读全文
posted @ 2012-05-11 20:12 谷堆旁边 阅读(662) 评论(0) 推荐(0)
POJ 2927 判断数字个数
摘要:时间限制:1000ms内存限制:65536kB描述判断一行字符串中的数字出现的个数。输入输入有多行,每行一个字符串,该字符串中可以包含&^$^#@*任何符号以及空格。输出有多行。输出该字符串中每个出现过的数字,然后在冒号“:”后面输出该数字出现的次数。按数字大小,从小到大的顺序输出。一行输出一个数字及其出现次数。没有出现过的数字不输出。样例输入ldksfj857ld*&%&^%00000138****0055end样例输出0:55:17:18:10:21:13:15:28:1(1)、源代码:#include<iostream>#include<cstr 阅读全文
posted @ 2012-05-11 20:11 谷堆旁边 阅读(420) 评论(0) 推荐(0)
POJ 2930 加减乘除
摘要:时间限制:1000ms内存限制:65536kB描述根据输入的运算符对输入的整数进行简单的整数运算。运算符只会是加+、减-、乘*、除/、求余%、阶乘!六个运算符之一。输出运算的结果,如果出现除数为零,则输出“error”,如果求余运算的第二个运算数为0,也输出“error”。输入输入为一行。先输入第一个整数,空格输入运算符,然后再空格输入第二个整数,回车结束本次输入。如果运算符为阶乘!符号,则不输入第二个整数,直接回车结束本次输入。输出输出为一行。输出对输入的两个(或一个)数,根据输入的运算符计算的结果,或者“error”。样例输入12 + 3454 – 253 * 645 / 05 !34 % 阅读全文
posted @ 2012-05-11 20:11 谷堆旁边 阅读(443) 评论(0) 推荐(0)
POJ 2682 循环移动
摘要:时间限制:1000ms内存限制:65536kB描述给定一组整数,要求利用数组把这组数保存起来,再利用指针实现对数组中的数循环移动。假定共有n个整数,则要使前面各数顺序向后移m个位置,并使最后m各数变为最前面的m各数。注意,不要用先输出后m个数,再输出前n-m个数的方法实现,也不要用两个数组的方式实现。要求只用一个数组的方式实现,一定要保证在输出结果时,输出的顺序和数组中数的顺序是一致的。输入输入有两行:第一行包含一个正整数n和一个正整数m,第二行包含n个正整数。每两个正整数中间用一个空格分开。输出输出有一行:经过循环移动后数组中整数的顺序依次输出,每两个整数之间用空格分隔。样例输入11 415 阅读全文
posted @ 2012-05-11 20:10 谷堆旁边 阅读(1017) 评论(0) 推荐(0)
POJ 2786 Pell数列
摘要:时间限制:3000ms内存限制:65536kB描述Pell数列a1, a2, a3, ...的定义是这样的,a1= 1, a2= 2, ... , an= 2 * an − 1+ an - 2(n > 2)。给出一个正整数k,要求Pell数列的第k项模上32767是多少。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000)。输出n行,每行输出对应一个输入。输出应是一个非负整数。样例输入218样例输出1408(1)、源代码:#include<iostream>#include<vector>u 阅读全文
posted @ 2012-05-11 20:10 谷堆旁边 阅读(478) 评论(0) 推荐(0)
POJ 3164 奇偶排序
摘要:时间限制:1000ms内存限制:65536kB描述输入十个整数,将十个整数按升序排列输出,并且奇数在前,偶数在后。输入输入十个整数输出按照奇偶排序好的十个整数样例输入10 9 8 7 6 5 4 3 2 1样例输出1 3 5 7 9 2 4 6 8 10(1)、源代码:#include<iostream>usingnamespacestd;intmain(){inti, j, t, ou = 0, ji = 0;inta[10], b[10], c[10];for(i = 0; i < 10; i++){cin >> a[i];if(a[i] % 2 == 0)b 阅读全文
posted @ 2012-05-11 20:08 谷堆旁边 阅读(393) 评论(0) 推荐(0)
POJ 3195 最大公约数
摘要:时间限制:1000ms内存限制:65536kB描述输入2个正整数,求出他们的最大公约数。输入输入两个正整数,只有一行,整数之间用一个空格分开输出输出最大公约数,只有一行,包括三个数据,分别为采用十进制,十六进制和八进制表示的最大公约数,输出数据之间用空格隔开样例输入3 9样例输出3 0x3 03(1)、源代码:#include<iostream>usingnamespacestd;intgcd(inta,intb){for(inttemp; b; a = b, b = temp)temp = a%b;returna;}intmain(){inta, b, c;cin >> 阅读全文
posted @ 2012-05-11 20:08 谷堆旁边 阅读(643) 评论(0) 推荐(0)
POJ 3248 最大公约数
摘要:时间限制:1000ms内存限制:65536kB描述给定两个正整数,求它们的最大公约数。输入有多组数据,每行为两个正整数,且不超过int可以表示的范围。输出行对应输出最大公约数。样例输入4 88 6200 300样例输出42100(1)、源代码:#include<iostream>usingnamespacestd;longgcd(inta,intb){for(inttemp; b; a = b, b = temp)temp = a%b;returna;}intmain(){inta, b;while(cin >> a >> b){cout << 阅读全文
posted @ 2012-05-11 20:07 谷堆旁边 阅读(709) 评论(0) 推荐(0)
POJ 2753 斐波那契数列
摘要:时间限制:1000ms内存限制:65536kB描述菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数是多少。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)输出输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小样例输入452191样例输出5141811(1)、源代码:#include<iostream>usingnamespacestd;intmain(){intn, a, i, tem 阅读全文
posted @ 2012-05-11 20:06 谷堆旁边 阅读(861) 评论(0) 推荐(0)
POJ 2702 密码翻译
摘要:时间限制:1000m内存限制:65536kB描述在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别.我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串.输入第一行是字符串的数目n, (也要使用get(s)读取字符串,再用n=atoi(s)获得整数数值).其余n行每行一个字符串,用gets(s)方式读取这一行字符串.每个字符串长度小于80个字符.输出输出每行字符串的加密字符串.样例输入1Hello! How a 阅读全文
posted @ 2012-05-11 20:06 谷堆旁边 阅读(2396) 评论(1) 推荐(1)
POJ 3708 1的个数
摘要:时间限制:1000ms内存限制:65536kB描述给定一个十进制整数N,求其对应2进制数中1的个数输入第一个整数表示有N组测试数据,其后N行是对应的测试数据,每行为一个整数。输出N行,每行输出对应一个输入。样例输入42100100066样例输出1362(1)、源代码:#include<iostream>usingnamespacestd;intmain(){intn, sum, count;cin >> n;while(n-- > 0){cin >> sum;count = 0;while(1){if(sum % 2 != 0)count++;sum 阅读全文
posted @ 2012-05-11 20:05 谷堆旁边 阅读(512) 评论(0) 推荐(0)
POJ 2943 小白鼠排队
摘要:时间限制:1000ms内存限制:65536kB描述N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。输入输入第一行为一个整数N,表示小白鼠的数目。下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。注意:白鼠的重量各不相同。输出按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。样例输入33 阅读全文
posted @ 2012-05-11 20:04 谷堆旁边 阅读(1055) 评论(0) 推荐(0)
POJ 3756 多边形内角和
摘要:时间限制:1000ms内存限制:65536kB描述在欧几里德几何中,n边形的内角和是(n-2)*180°。已知其他几个内角,就能计算出未知内角的度数。请编写一个程序,来解决这个问题。输入输入分成2m+1行,m组数据。第1行只有一个数n(n<1000),是多边形的边数。第2行有n-1个数,是每个内角的度数。以此类推。第2m+1行,是0输出输出有m行。每组数据的结果占单独一行样例输入345 60590 90 250 400样例输出7570(1)、源代码:#include<iostream>usingnamespacestd;intmain(){intn, sum;dou 阅读全文
posted @ 2012-05-11 20:04 谷堆旁边 阅读(495) 评论(0) 推荐(0)
POJ 2940 求和
摘要:时间限制:1000ms内存限制:65536kB描述求Sn = a + aa + aaa + … + aa…a 的值(最后一个数中 a 的个数为 n ),其中 a 是一个1~9的数字,例如:2 + 22 + 222 + 2222 + 22222 (此时 a=2 n=5 )输入一行,包括两个整数,第一个为a,第2个为n(1 ≤ a, n ≤ 9),以空格分隔。输出一行,Sn的值。样例输入2 5样例输出24690(1)、源代码:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){inti, a, n;d 阅读全文
posted @ 2012-05-11 20:03 谷堆旁边 阅读(427) 评论(0) 推荐(0)
POJ 2938 按顺序输出
摘要:时间限制:1000ms内存限制:65536kB描述输入3个整数,要求按从大到小的顺序输出它们。输入一行,包括3个整数,以空格分隔输出一行,包括3个整数,以空格分隔样例输入1 4 4样例输出4 4 1(1)、源代码:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){inti, j, t;inta[3];cin >> a[0] >> a[1] >> a[2];for(i = 0; i < 3; i++){t = a[i];for(j = i; j > 阅读全文
posted @ 2012-05-11 20:03 谷堆旁边 阅读(255) 评论(0) 推荐(0)
POJ 2911 受限完全平方数
摘要:时间限制:1000ms内存限制:65536kB描述A,B都是四位数,且是完全平方数。C是一个4位数,且每一位的数字都相同。已知C=A-B,求所有满足条件,且小于限制的A。输入输入一个MAX,四位数。输出从小到大输出所有的满足条件的A,且A应该小于MAX。注意,每输出一个数后换行。Data is modified at 17:40, any "wrong" code submitted befor this time may be accepted if submitted again.样例输入无样例输出无(1)、源代码:#include<iostream>usi 阅读全文
posted @ 2012-05-11 20:02 谷堆旁边 阅读(610) 评论(0) 推荐(0)
POJ 2886 能被3除尽的数之和
摘要:时间限制:1000ms内存限制:65536kB描述输入一个非负整数n(n≥0),求从0到n之间(注意包括n)所有能被3除尽的数之和。输入非负整数:n输出[0,n]之间能被3除尽的数之和:sum样例输入19样例输出018(1)、源代码:#include<iostream>usingnamespacestd;intmain(){inti, j, n, sum;while(cin >> n){sum = 0;for(i = 0; i<=n; i++)if(i%3 == 0)sum+=i;cout << sum << endl;}return0;} 阅读全文
posted @ 2012-05-11 20:01 谷堆旁边 阅读(315) 评论(0) 推荐(0)
C++程序设计教程--读书笔记14 模板
摘要:第十四章一、知识点1、由于事物的相似性,设计的类型和函数有时也表现出相似甚至相同性。将这些相似的类型和函数归纳起来构成一个类族或函数族,用一种统一的方式来编程就是模板编程。(P481)2、函数模板的定义形式为:(P 482)template <类型参数表>返回类型 函数模板名(数据参数表){ 函数模板定义体}例如:template <typename T>void swap(T& a, T& b){ T temp = a; a = b; b = temp;}3、函数模板不是函数,它是以具体的类型为实参来生成函数体的模板。函数模板定义被编译时,不会产生任何 阅读全文
posted @ 2012-05-06 19:35 谷堆旁边 阅读(575) 评论(0) 推荐(0)
POJ 2709 求出e的值
摘要:时间限制:1000ms内存限制:65536kB描述利用公式e = 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! 求e 。输入输入只有一行,该行包含一个整数n(2<=n<=15),表示计算e时累加到1/n!。输出输出只有一行,该行包含计算出来的e的值,要求打印小数点后10位。样例输入10样例输出2.7182818011提示1、e以及n!用double表示2、要输出浮点数、双精度数小数点后10位数字,可以用下面这种形式:printf("%.10f", num);(1)、源代码:#include<stdio.h>intmain() 阅读全文
posted @ 2012-05-02 22:16 谷堆旁边 阅读(655) 评论(0) 推荐(0)
POJ 2693 最远距离
摘要:时间限制:1000ms内存限制:65536kB描述给定一组点(x,y),求距离最远的两个点之间的距离。输入第一行是点数n(n大于等于2)接着每一行代表一个点,由两个浮点数x y组成。输出输出一行是最远两点之间的距离。使用printf("%.4f\n", dis)输出距离值并精确到小数点后4位。样例输入634.0 23.028.1 21.614.7 17.117.0 27.234.7 67.129.3 65.1样例输出53.8516(1)、源代码:#include<iostream>#include<cmath>usingnamespacestd;in 阅读全文
posted @ 2012-05-02 22:15 谷堆旁边 阅读(893) 评论(0) 推荐(0)
POJ 2733 判断闰年
摘要:时间限制:1000ms内存限制:65536kB描述判断某年是否是闰年。输入输入只有一行,包含一个整数a(0 < a < 3000)输出一行,如果公元a年是闰年输出Y,否则输出N样例输入2006样例输出N提示公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年, 能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。(1)、源代码:#include<iostream>usingnamespacestd;intmain(){intn;cin >> n;if(n % 4 == 0){if(n % 阅读全文
posted @ 2012-05-02 22:15 谷堆旁边 阅读(930) 评论(0) 推荐(0)
POJ 2686 打印完数
摘要:时间限制:1000ms内存限制:65536kB描述一个数如果恰好等于它的因子之和,这个数就成为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序打印出1000之内(包括1000)所有的完数,并按如下格式输出其所有因子:6 its factors are 1,2,3输入无输入输出输出1000以内所有的完数及其因子,每行一个完数。样例输入样例输出(1)、源代码:#include<iostream>usingnamespacestd;intmain(){intyin[100];intsum, k, i, j, m;for(i = 6; i <= 100 阅读全文
posted @ 2012-05-02 22:15 谷堆旁边 阅读(623) 评论(0) 推荐(0)
POJ 2681 求字符串长度
摘要:时间限制:1000ms内存限制:65536kB描述求一个长度不大于100的字符串的长度,要求不使用strlen方法,并且使用到字符指针。输入输出字符串的长度。样例输入I love Beijing.样例输出15(1)、源代码:#include<iostream>#include<string>usingnamespacestd;intmain(){intn, i;charp[105];cin.getline(p, 103);for(i = 0; p[i] !='\0'; i++){}cout << i << endl;return0 阅读全文
posted @ 2012-05-02 22:14 谷堆旁边 阅读(551) 评论(0) 推荐(0)
POJ 3671 字符串排序
摘要:时间限制:1000ms内存限制:65536kB描述输入5个字符串,每个串的长度均不超过10个字符,将字符串排序后输出。目的:学会使用私字符串函数,strcpy和strcmp。使用注意:#include提示1:两个字符串可以整体比较大小,使用系统函数strcmp()举例:比较str1和str2的大小t=strcmp(str1,str2);t有三种可能 0(str1==str2),1(str1>str2),-1(str1输入5行,每行一个由不超过10个小写字母组成的字符串输出5行,排序后的字符串样例输入ccccccccccaaaaaaaaaabbbbbbbbbbeeeeeeeeeeddddd 阅读全文
posted @ 2012-05-02 22:14 谷堆旁边 阅读(316) 评论(0) 推荐(0)
POJ 2721 忽略大小写比较字符串大小
摘要:时间限制:1000ms内存限制:65536kB描述一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。输入输入为两行,每行一个字符串,共两个字符串。(请用gets录入 阅读全文
posted @ 2012-05-02 22:14 谷堆旁边 阅读(2092) 评论(0) 推荐(0)
POJ 2696 计算表达式的值
摘要:时间限制:1000ms内存限制:65536kB描述有些语言中表达式的运算符使用字符串表示,例如用mul代表*,用div代表/,用add代表+,用sub代表-,用mod代表%。输入第一行为表达式的个数n。其余n行每行一个表达式,表达式由两个整数及其中间的运算符字符串表示。输出输出为n行,每行是对应表达式的值。注意,此处要求的所有运算均为整数运算。样例输入5345 mul 1223945 div 12321 add 343340 sub 211377 mod 27样例输出4209032866412926(1)、源代码:#include<iostream>#include<stri 阅读全文
posted @ 2012-05-02 22:13 谷堆旁边 阅读(549) 评论(0) 推荐(0)
POJ 2699 自整除数
摘要:时间限制:1000ms内存限制:65536kB描述对一个整数n,如果其各个位数的数字相加得到的数m能整除n,则称n为自整除数.例如21,21%(2+1)==0,所以21是自整除数.现求出从10到n(n<100)之间的所有自整除数.输入有一行,整数n,(10<=n<100)输出有多行.按从小到大的顺序输出所有大于等于10,小于等于n的自整除数,每行一个自整除数.样例输入47样例输出101218202124273036404245(1)、源代码:#include<iostream>usingnamespacestd;intmain(){intn, i;cin > 阅读全文
posted @ 2012-05-02 22:13 谷堆旁边 阅读(926) 评论(0) 推荐(0)
POJ 2700 字符替换
摘要:时间限制:1000ms内存限制:65536kB描述把一个字符串中特定的字符用给定的字符替换,得到一个新的字符串.输入输入有多行,第一行是要处理的字符串的数目n.其余个行每行由三个字符串组成,第一个字符串是待替换的字符串,字符串长度小于等于30个字符;第二个字符串是一个字符,为被替换字符;第三个字符串是一个字符,为替换后的字符.输出有多行,每行输出对应的替换后的字符串.样例输入1hello-how-are-you o O样例输出hellO-hOw-are-yOu(1)、源代码:#include<iostream>#include<string>usingnamespace 阅读全文
posted @ 2012-05-02 22:13 谷堆旁边 阅读(487) 评论(0) 推荐(0)
POJ 2718 晶晶赴约会
摘要:时间限制:1000ms内存限制:65536kB描述晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出OK;如果不能则输出NO。输入输入有一行,贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期日。输出输出有一行,如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。注意YES和NO都是大写字母!样例输入2样例输出YES(1)、源代码:#include <iostream>using namespace std;int main(){ int n; cin >> n; if(n == 1 || 阅读全文
posted @ 2012-05-02 22:12 谷堆旁边 阅读(3361) 评论(0) 推荐(0)
POJ 2887 能被3,5,7整除的数
摘要:时间限制:1000ms内存限制:65536kB描述输入一个整数,判断它能否被3,5,7整除,并输出以下信息:1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);2、能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者 3 7或者5 7,中间用空格分隔)3、能被其中一个数整除(输出这个除数)4、不能被任何数整除;(输出小写字符'n',不包括单引号)输入一个数字输出一行数字,从小到大排列,包含3,5,7中为该输入的除数的数字,数字中间用空格隔开样例输入0515105样例输出3 5 753 53 5 7(1)、源代码:#include<iost 阅读全文
posted @ 2012-05-02 22:12 谷堆旁边 阅读(1502) 评论(1) 推荐(0)
POJ 2695 最大商
摘要:时间限制:5000ms内存限制:65536kB描述给一组数,前后相邻的两个数相除,输出商最大的两个数及商的值。输入第一行为数组中浮点数的个数n,n大于2,其余n行为每一行一个浮点数。输出以下面的形式输出结果,前两个数是相除的两个数,最后一个数为最大的商值。printf("%f / %f = %f\n", a[maxi-1], a[maxi], maxq);样例输入1041.018467.06334.026500.019169.015724.011478.029358.026962.024464.0样例输出18467.000000 / 6334.000000 = 2.9155 阅读全文
posted @ 2012-05-02 22:12 谷堆旁边 阅读(513) 评论(0) 推荐(0)
POJ 4045 与3和5无关的数
摘要:时间限制:1000ms内存限制:65536kB描述一个正整数,如果它能被x整除,或者它的十进制表示法中某个位数上的数字为x,则称其为与x相关的数.现求所有小于等于n(n<300)的与x无关的正整数的平方和.输入输入为一行,正整数n,(n<300)输出输出小于等于n的与3和5无关的正整数的平方和样例输入8样例输出134(1)、源代码:#include<iostream>usingnamespacestd;boolisNT(intt){if(t % 3 == 0 || (t / 10) % 10 == 3 || t % 10 == 3)returnfalse;elseret 阅读全文
posted @ 2012-05-02 22:11 谷堆旁边 阅读(386) 评论(0) 推荐(0)
POJ 2691 打印极值点下标
摘要:时间限制:1000ms内存限制:65536kB描述在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。输入有2×n+1行输入:第一行是要处理的数组的个数n;对其余2×n行,第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。输出输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。样例输入31010 12 12 11 11 12 23 24 12 121512 12 122 112 222 211 222 221 76 36 阅读全文
posted @ 2012-05-02 22:11 谷堆旁边 阅读(555) 评论(0) 推荐(0)
POJ 1004 Financial Management
摘要:时间限制:1000ms内存限制:65536kB描述Larry graduated this year and finally has a job. He's making a lot of money, but somehow never seems to have enough. Larry has decided that he needs to grab hold of his financial portfolio and solve his financing problems. The first step is to figure out what's been 阅读全文
posted @ 2012-05-02 22:11 谷堆旁边 阅读(182) 评论(0) 推荐(0)
POJ 2933 停车场收费
摘要:时间限制:1000ms内存限制:65536kB描述一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。(注意输出结果小数点后保留两位)输入输入停车的时间输出输出应该收取的停车费用样例输入233.46样例输出5.005.005.92(1)、源代码:#include<iostream>#include<cstdio>usingnamespacestd;int 阅读全文
posted @ 2012-05-02 22:10 谷堆旁边 阅读(884) 评论(0) 推荐(0)
POJ 2679 整数的立方和
摘要:时间限制:1000ms内存限制:65536kB描述给定一个正整数k(1<k<10),求1到k的立方和m。即m=1+2*2*2+…+k*k*k。输入输入只有一行,该行包含一个正整数k。输出输出只有一行,该行包含1到k的立方和。样例输入5 样例输出225(1)、源代码:#include<iostream>usingnamespacestd;intmain(){inti, n, sum = 1;cin >> n;for(i = 2; i <= n; i++)sum += i * i * i;cout << sum << endl;re 阅读全文
posted @ 2012-05-02 22:10 谷堆旁边 阅读(677) 评论(0) 推荐(0)
POJ 2856 计算邮资
摘要:时间限制:1000ms内存限制:65536kB描述计算邮资:用户输入:邮件的重量,以及是否加快计算规则:重量在1克以内(包括1克), 基本费0.8元。超过1克的部分,按照0.5元/克的比例加收超重费。如果用户选择加快,多收2元。输入重量 double weight是否加快 char exp(可以取'y' or 'n')输出邮资(注:只需要输出数字,例如1.3元,只需要输出1.3)样例输入1 y2 n3 n样例输出2.81.31.8(1)、源代码:#include<iostream>usingnamespacestd;intmain(){doublen 阅读全文
posted @ 2012-05-02 22:10 谷堆旁边 阅读(1065) 评论(0) 推荐(0)
POJ 2689 大小写字母互换
摘要:时间限制:1000ms内存限制:65536kB描述把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母。输入输入一行:待互换的字符串。输出输出一行:完成互换的字符串(字符串长度小于80)。样例输入If so, you already have a Google Account. You can sign in on the right. 样例输出iF SO, YOU ALREADY HAVE A gOOGLE aCCOUNT. yOU CAN SIGN IN ON THE RIGHT. 提示由于输入字符串中有空格,因此应该用get(s)把一行字符串读入到字符数组s中。 阅读全文
posted @ 2012-05-02 22:09 谷堆旁边 阅读(542) 评论(0) 推荐(0)
POJ 2871 整数奇偶排序
摘要:时间限制:1000ms内存限制:65536kB描述输入10个整数,彼此以空格分隔重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列;2.然后输出其中的偶数,并按从小到大排列。输入任意排序的10个整数(0~100),彼此以空格分隔输出按照要求排序后输出,由空格分隔样例输入4 7 3 13 11 12 0 47 34 98样例输出47 13 11 7 3 0 4 12 34 98提示1. 测试数据可能有很多组,请使用while(cin>>a[0]>>a[1]>>...>>a[9])类似的做法来实现;2. 输入数据随机,有可 阅读全文
posted @ 2012-05-02 22:09 谷堆旁边 阅读(440) 评论(0) 推荐(0)
POJ 2701 与7无关的数
摘要:时间限制:1000ms内存限制:65536kB描述一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和.输入输入为一行,正整数n,(n<100)输出输出小于等于n的与7无关的正整数的平方和样例输入21样例输出2336(1)、源代码:#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inti, n, sum = 0;cin >> n;for(i = 1; i <= n; 阅读全文
posted @ 2012-05-02 22:09 谷堆旁边 阅读(955) 评论(0) 推荐(0)
POJ 2912 三个完全平方数
摘要:时间限制:1000ms内存限制:65536kB描述将1,2,...,9分成3组,每组3个数,组内数字不重复,组间的数字也不重复。组内的3个数字可任意排列,组成一个三位数。已知这3个数都是完全平方数,求这3个数。输入输入一个MAX输出如果求出的三个数a,b,c均小于MAX,则输出:a b c否则输出小于MAX的数:a b或者a注意:1,a,b与b,c之间各有空格一个。最后一个数之后没有空格。2,应该满足a小于b小于c。样例输入无样例输出无(1)、源代码:#include<iostream>usingnamespacestd;intmain(){intmax;while(cin> 阅读全文
posted @ 2012-05-02 22:08 谷堆旁边 阅读(1011) 评论(0) 推荐(0)
POJ 2708 平衡饮食
摘要:时间限制:1000ms内存限制:65536kB描述100克不同食品的营养成分含量如下表:食品--------蛋白质-------脂肪----------碳水化合物大米--------7.5----------0.75----------78面----------10-----------1.25----------75蔬菜--------1.5----------0.19----------4.28豆类--------35-----------18------------42蛋一只------5.0----------5.0-----------0.6瘦肉--------16.5------- 阅读全文
posted @ 2012-05-02 22:08 谷堆旁边 阅读(604) 评论(0) 推荐(0)
POJ 4013 中位数
摘要:时间限制:2000ms内存限制:65536kB描述中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数或最中间两个数据的平均值(如果这组数的个数为奇数,则中位数为位于中间位置的那个数;如果这组数的个数为偶数,则中位数是位于中间位置的两个数的平均值).给出一组无序整数,求出中位数,如果求最中间两个数的平均数,向下取整即可(不需要使用浮点数)输入该程序包含多组测试数据,每一组测试数据的第一行为N,代表该组测试数据包含的数据个数,1 <= N <= 10000.接着N行为N个数据的输入,N=0时结束输入输出输出中位数,每一组测试数据输出一行样例输入4103020403403 阅读全文
posted @ 2012-05-02 22:07 谷堆旁边 阅读(569) 评论(0) 推荐(0)
POJ 2869 计算费马数
摘要:时间限制:1000ms内存限制:65536kB描述费马数是一个正整数序列{Fn},它的表达式为Fn = 2^2^n + 1,n = 0, 1, 2, ...编写程序,输出前 k 个费马数 F0, F1, F2, ...要求: 1、不能使用指数函数power 2、不能使用查表法,必须在程序里计算费马数输入非负整数k输出前k个费马数样例输入3样例输出3517提示输入只有一个k,不需使用 while (cin >> k)。(1)、源代码:#include<iostream>usingnamespacestd;intmain(){inti, j, k, fn;intt, tem 阅读全文
posted @ 2012-05-02 22:07 谷堆旁边 阅读(446) 评论(0) 推荐(0)
POJ 3255 十进制到六进制
摘要:时间限制:1000ms内存限制:65536kB描述进制转换: 将十进制(不超过int类型表示的范围)的数转换为六进制的数.输入输入为第一行是组数n,后面n行是需要进制转换的十进制数.输出进制转换后的n行六进制数。样例输入31346265样例输出211141121(1)、源代码:#include<iostream>#include<stack>#include<cmath>usingnamespacestd;voidchange(intdata){stack<int>s;if(0 == data)cout <<"0" 阅读全文
posted @ 2012-05-02 22:07 谷堆旁边 阅读(396) 评论(0) 推荐(0)
POJ 2687 数组逆序重放
摘要:时间限制:1000ms内存限制:65536kB描述将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。输入输入为两行:第一行数组中元素的个数n(1<n<100),第二行是n个整数,每两个整数之间用空格分隔。输出输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。样例输入58 6 5 4 1样例输出1 4 5 6 8(1)、源代码:#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inti, n;intnum[101];cin > 阅读全文
posted @ 2012-05-02 22:06 谷堆旁边 阅读(566) 评论(0) 推荐(0)
POJ 2688 求字母的个数
摘要:时间限制:1000ms内存限制:65536kB描述在一个字符串中找出元音字母a,e,i,o,u出现的次数。输入输入一行字符串(字符串中可能有空格,请用gets(s)方法把一行字符串输入到字符数组s中),字符串长度小于80个字符。输出输出一行,依次输出a,e,i,o,u在输入字符串中出现的次数,整数之间用空格分隔。样例输入If so, you already have a Google Account. You can sign in on the right.样例输出5 4 3 7 3提示注意,只统计小写元音字母a,e,i,o,u出现的次数。(1)、源代码:#include<iostre 阅读全文
posted @ 2012-05-02 22:06 谷堆旁边 阅读(1332) 评论(0) 推荐(0)
POJ 2684 求阶乘的和
摘要:时间限制:1000ms内存限制:65536kB描述求前n(1<n<12)个整数的阶乘的和(即求1!+2!+3!+...+n!)。输入输入有一行:整数n。输出输出有一行:阶乘得和。样例输入5样例输出153(1)、源代码:#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inti, j, n, sum = 1;inttemp;cin >> n;for(i = 2; i <= n; i++){temp = 1;for(j = 2; j <= i; j++)temp * 阅读全文
posted @ 2012-05-02 22:06 谷堆旁边 阅读(461) 评论(0) 推荐(0)
POJ 2675 计算书费
摘要:时间限制:1000ms内存限制:65536kB描述下面是一个图书的单价表:计算概论 28.9 元/本数据结构与算法 32.7 元/本数字逻辑 45.6元/本C++程序设计教程 78 元/本人工智能 35 元/本计算机体系结构 86.2 元/本编译原理 27.8元/本操作系统 43 元/本计算机网络 56 元/本JAVA程序设计 65 元/本给定每种图书购买的数量,编程计算应付的总费用。输入输入第一行包含一个正整数k(0<k<100),表示有k组测试数据;接下来k行,每行包含一组测试数据。每组测试数据包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、《数据结构 阅读全文
posted @ 2012-05-02 22:05 谷堆旁边 阅读(965) 评论(0) 推荐(0)
POJ 2676 整数的个数
摘要:时间限制:1000ms内存限制:65536kB描述给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。输入输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。输出输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。样例输入51 5 8 10 5 样例输出121(1)、源代码:#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inti, k;in 阅读全文
posted @ 2012-05-02 22:05 谷堆旁边 阅读(756) 评论(0) 推荐(0)
POJ 3142 球弹跳高度的计算
摘要:时间限制:1000ms内存限制:65536kB描述一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?输入输入一个整数h,表示球的初始高度。输出输出包含两行:第1行:到球第10次落地时,一共经过的米数。第2行:第10次弹跳的高度。注意:结果可能是实数,结果用double类型保存。提示:输出时不需要对精度特殊控制,用cout << ANSWER,或者printf("%g", ANSWER)即可。样例输入20样例输出59.92190.0195313(1)、源代码:#include 阅读全文
posted @ 2012-05-02 22:04 谷堆旁边 阅读(904) 评论(0) 推荐(0)
POJ 2854 点和正方形的关系
摘要:时间限制:1000ms内存限制:65536kB描述有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内。输入输入坐标x,y输出yes或者no样例输入3 41 10 0样例输出noyesyes(1)、源代码:#include<iostream>usingnamespacestd;intmain(){doublea, b;while(cin >> a >> b){if(a <= 1 && a >= -1 && 阅读全文
posted @ 2012-05-02 22:04 谷堆旁边 阅读(300) 评论(0) 推荐(0)
POJ 2685 打印水仙花数
摘要:时间限制:1000ms内存限制:65536kB描述打印出所有得“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身,例如,152是水仙花数,因为153=1×1×1+5×5×5+3×3×3。输入无输入。输出输出所有水仙花数,每行输出一个水仙花数。样例输入样例输出(1)、源代码:#include <iostream>using namespace std;int main(){ for(int i=100; i<1000; i++){ if(i == ((i/100)*(i/100)*(i/100 阅读全文
posted @ 2012-05-02 22:04 谷堆旁边 阅读(287) 评论(0) 推荐(0)
POJ 1003 Hangover
摘要:时间限制:1000ms内存限制:65536kB描述How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length. (We're assuming that the cards must be perpendicular to the table.) With two cards you can make the top card overhang the bottom one by 阅读全文
posted @ 2012-05-02 22:03 谷堆旁边 阅读(226) 评论(0) 推荐(0)
POJ 2729 求12以内n的阶乘
摘要:时间限制:1000ms内存限制:65536kB描述求12以内n的阶乘。输入只有一行输入,整数n(n<=12)。输出只有一行输出,数值n!。样例输入3样例输出6(1)、源代码:#include<iostream>usingnamespacestd;intmain(){inti, n, res = 1;cin >> n;for(i = 2; i <= n; i++)res *= i;cout << res << endl;return0;}(2)、解题思路:略(3)、出错原因:略 阅读全文
posted @ 2012-05-02 22:02 谷堆旁边 阅读(821) 评论(0) 推荐(0)
POJ 2926 算术运算
摘要:时间限制:1000ms内存限制:65536kB描述根据输入的数字及运算符对输入的两个数进行运算。输出结果。输入输入为一行。先输入第一个数,空格,输入运算符,再空格,输入第二个数。回车结束输入。输入的运算符只会是“+”或者“-”。输出输出运算的结果。样例输入1111111111 - 145 + 873样例输出1111111110918提示输入的运算符只会是“+”或者“-”。测试输入可能会比较大。需要用长整型。(1)、源代码:#include<iostream>usingnamespacestd;intmain(){longa, b;charc;while(cin >> a 阅读全文
posted @ 2012-05-02 22:02 谷堆旁边 阅读(352) 评论(0) 推荐(0)
POJ 2720 大象喝水
摘要:时间限制:1000ms内存限制:65536kB描述一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。(设PAI=3.14159)输入输入有一行:分别表示小圆桶的深h,和底面半径r,单位都是厘米。输出输出也只有一行,大象至少要喝水的桶数。样例输入23 11样例输出3(1)、源代码:#include<iostream>usingnamespacestd;constdoublePAI = 3.14159;intmain(){inth, r, sum;doubleresult;cin >> 阅读全文
posted @ 2012-05-02 22:01 谷堆旁边 阅读(1081) 评论(0) 推荐(0)
POJ 2722 学分绩点
摘要:时间限制:1000ms内存限制:65536kB描述北京大学对本科生的成绩施行平均学分绩点制(GPA)。既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。公式如下:实际成绩 绩点90——100 4.085——89 3.782——84 3.378——81 3.075——77 2.772——74 2.368——71 2.064——67 1.560——63 1.060以下 01.一门课程的学分绩点=该课绩点*该课学分2.总评绩点=所有学科绩点之和/所有课程学分之和现要求你编写程序求出某人A的总评绩点(GPA)。输入第一行 总的课程数n(n<10);第二行 相应课程的学分(两个学分间 阅读全文
posted @ 2012-05-02 22:01 谷堆旁边 阅读(558) 评论(0) 推荐(0)
POJ 2818 密码
摘要:时间限制:1000ms内存限制:65536kB描述Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 , . . .,an, 它们都大于0小于等于n。 机密过程如下:待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于i位置的字母将被写到加密信息的第ai个位置, ai 是位于i位置的密钥。加密信息如此反复加密,一共加密 k 次。信息长度小于等于n。如果信息比 n 短, 后面的位置用空格填补直到信息长度为n。请你帮助 Alice 和 Bob 写一个程序,读入密钥,然后读入加密次数 k 和要加密的信息,按加密规 阅读全文
posted @ 2012-05-02 22:00 谷堆旁边 阅读(883) 评论(0) 推荐(0)
POJ 2703 骑车与走路
摘要:时间限制:1000ms内存限制:65536kB描述在北大校园里,没有自行车,上课办事会很不方便.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间.假设找到自行车,开锁并车上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米.请判断走不同的距离去办事,是骑车快还是走路快.输入第一行为待处理的数据的数量n其后每一行整数为一次办事要行走的距离,单位为米.输出对应每个整数,如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All&q 阅读全文
posted @ 2012-05-02 22:00 谷堆旁边 阅读(595) 评论(0) 推荐(0)
POJ 2719 陶陶摘苹果
摘要:时间限制:1000ms内存限制:65536kB描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。输入输入包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数( 阅读全文
posted @ 2012-05-02 21:59 谷堆旁边 阅读(291) 评论(0) 推荐(0)
POJ 2735 八进制到十进制
摘要:时间限制:1000ms内存限制:65536kB描述把一个八进制正整数转化成十进制输入一行,仅含一个八进制表示的正整数a,a的十进制表示的范围是(0, 65536)输出一行,a的十进制表示样例输入11样例输出9(1)、源代码:#include<iostream>usingnamespacestd;intmain(){inta;cin >> oct >> a;cout << dec << a << endl;return0;}(2)、解题思路:主要是读入八进制数,cin >> oct >> a;即可。( 阅读全文
posted @ 2012-05-02 21:58 谷堆旁边 阅读(401) 评论(0) 推荐(0)
POJ 2798 2进制转换为16进制
摘要:时间限制:1000ms内存限制:65536kB描述输入一个2进制的数,要求输出该2进制数的16进制表示。在16进制的表示中,A-F表示10-15输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是1,至多是10000输出n行,每行输出对应一个输入。样例输入2100000111样例输出207(1)、源代码:#include<iostream>#include<cstring>usingnamespacestd;charsix[] ="0123456789ABCDEF";intfour[] = 阅读全文
posted @ 2012-05-02 21:58 谷堆旁边 阅读(683) 评论(0) 推荐(0)
POJ 1017 装箱问题
摘要:时间限制:1000ms内存限制:65536kB描述一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。输入输入文件包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1*1至6*6这六种产品的数量。输入文件将以6个0组成的一行结尾。输出除了输入的最后一行6 阅读全文
posted @ 2012-05-02 21:57 谷堆旁边 阅读(636) 评论(0) 推荐(0)
POJ 2734 十进制到八进制
摘要:时间限制:1000ms内存限制:65536kB描述把一个十进制正整数转化成八进制输入一行,仅含一个十进制表示的整数a(0 < a < 65536)输出一行,a的八进制表示样例输入9样例输出11(1)、源代码:#include<iostream>usingnamespacestd;intmain(){inta;cin >> a;cout << oct << a << endl;return0;}(2)解题思路:主要就是进制转换,比如八进制(Oct),十进制(Dec),十六进制(Hex),输出cout << oct 阅读全文
posted @ 2012-05-02 21:57 谷堆旁边 阅读(435) 评论(0) 推荐(0)
POJ 2807 两倍
摘要:时间限制:1000ms内存限制:65536kB描述给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。输入输入包括多组测试数据。每组数据包括一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束后,这个数不属于那2到15个给定的正整数。输入的最后一行只包括一个整数-1,这行表示输入数据的结束,不用进行处理。输出对每组输入数据,输出一行,给出有多少个数对满足其中一个数是另一个数的两倍。样例输入1 4 3 2 阅读全文
posted @ 2012-05-02 21:56 谷堆旁边 阅读(1525) 评论(0) 推荐(0)
POJ 2680 化学诊断
摘要:时间限制:1000ms内存限制:65536kB描述下表是进行血常规检验的正常值参考范围,及化验值异常的临床意义:给定一张化验单,判断其所有指标是否正常,如果不正常,统计有几项不正常。化验单上的值必须严格落在正常参考值范围内,才算是正常。正常参考值范围包括边界,即落在边界上也算正常。输入输出对于每组测试数据,输出一行。如果所有检验项目正常,则输出:normal;否则输出不正常的项的数目。样例输入2female 4.5 4.0 115 37 200male 3.9 3.5 155 36 301样例输出normal3(1)、源代码:#include<iostream>#include&l 阅读全文
posted @ 2012-05-02 21:56 谷堆旁边 阅读(421) 评论(0) 推荐(0)
POJ 2767 简单密码
摘要:时间限制:1000ms 内存限制:65536kB描述Julius Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。如下是密文和明文中字符的对应关系。密文A B C D E F G H I J K L M N O P Q R S T U V W X Y Z明文V W X Y Z A B C D E F G H I J K L M N O P Q R S T U你的任务是对给定的密文进行解密得到明文。你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,对这些字符不用进行解码。输入输入. 阅读全文
posted @ 2012-05-02 21:55 谷堆旁边 阅读(552) 评论(0) 推荐(0)
POJ 2750 鸡兔同笼
摘要:时间限制:1000m内存限制:65536kB描述一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)输出输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开如果没有满足要求的答案,则输出两个0。样例输入2320样例输出0 05 10(1)、源代码:#include <iostream>using namespace std 阅读全文
posted @ 2012-05-02 21:52 谷堆旁边 阅读(707) 评论(0) 推荐(0)
程序设计导引及在线实践--读书笔记一
摘要:第一章一、知识点1、#include是C语言的保留字,表示要把另一个文件中的内容包含在本文件中。类似的还有sizeof也是一个保留字,同时它还是一个运算符。(P12)2、变量是内存中的一块区域,在程序运行过程中可以修改这块区域中存放的数值。变量的名称是这个内存区域的唯一标识。变量的类型决定了这个内存区域的大小、对所存数值的类型要求。(P13)3、C语言中的基本数据类型及其范围、大小:(P14)4、在赋值语句中,如果等号左边的变量类型为T1,等号右边的变量或常量类型为T2,T1和T2不相同,那么编译器会将等号右边的变量或常量的值,自动转换为一个T1类型的值,再将此值赋给等号左边的变量。这个过程叫 阅读全文
posted @ 2012-05-01 10:09 谷堆旁边 阅读(535) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第十二章 多态
摘要:第十二章一、知识点1、一个操作随着所传递的对象类型的不同能够做出不同的反应,其行为模式成为多态。(P413)2、基类与派生类的同名操作,只要标记上virtual,则该操作便具有多态性。(P416)3、一旦标记基类的函数为虚函数,便有连锁反应,后面继承的类中一切同名成员函数都变成了虚函数。如果是引发实际复制动作的传递,则子类对象完全变成基类对象了,这时候,便不会再有悬念了,即不会有多态了。因为在参数传递的过程中已经将对象的性质做了肯定的转变。而对于确定的对象,是没有选择操作可言的。因此说白了,就是仅仅对于对象的指针和引用的间接访问,才会发生多态现象。(P417)4、虚函数机理:(1)、通过预先设 阅读全文
posted @ 2012-05-01 10:00 谷堆旁边 阅读(284) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第十三章 抽象类
摘要:第十三章一、知识点1、一般地,一个容器,其元素是基类对象的指针或引用,才有多态可言,若没有指向基类的操作,子类就不能行使多态。(P444)2、抽象类的用途就是被继承。定义抽象类就是在类定义中至少声明一个纯虚函数。所谓纯虚函数是指被标明为不具体实现的虚函数。纯虚函数的声明形式是在虚函数声明形式后跟“=0”。例如:(P446)virtual void withdrawal(double amount) = 0;3、抽象类不允许有实例对象,即不能由抽象类创建对象。抽象类作为基类为其他类服务。(P446)4、只要子类中尚有未被覆盖定义的纯虚函数,那么,子类相对于抽象基类的抽象状态不变。(P447)5、 阅读全文
posted @ 2012-05-01 10:00 谷堆旁边 阅读(284) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第十一章 基于对象编程
摘要:第十一章一、知识点1、数据类型:数据类型是一组性质相同的具有一定范围的值集以及定义与这个值集上的一组操作。数据抽象是在原有数据的基础上,描述更高级事物的形态。(P378)2、抽象数据类型是基于已有数据类型而组合生成的复合数据类型。在C++中,类正是抽象数据类型的描述形式。因此,抽象数据类型也是自定义的数据类型。抽象数据类型很好地提供了数据抽象的手段,采用抽象数据类型对数据进行抽象的方法,就是基于对象的编程方法。(P379)3、关于一个串到另一个串的复制方法:(P382)void f(char *s){ string s1 = s, s2 = s; char * st = new char[.. 阅读全文
posted @ 2012-05-01 09:59 谷堆旁边 阅读(221) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第九章 对象生灭
摘要:第九章一、知识点1、对象定义和变量定义一样,当以无初始化的形式:Date d;定义时,若创建全局对象,则以全0位的模式表示对象。若创建局部对象,则以随机值表示对象。(P314)2、构造函数的名称反映了对象创建的一般过程,它是唯一的。类的构造函数承担对象的初始化工作,它旨在使对象初值有意义。(P316)3、作为对象的构造函数,其根本的使命就是创建对象实体。如果创建失败,就该让程序捕捉该异常,或者干脆终止程序的运行。因此构造函数的工作不是以对象体作为返回值,也不是以运行的失败作为继续运行的依据,构造函数的成功运行,确定了对象实体今后的操作合法性,构造函数的失败运行,预示着后继工作无法展开而必须另寻 阅读全文
posted @ 2012-05-01 09:58 谷堆旁边 阅读(563) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第十章 继承
摘要:第十章一、知识点1、继承就是让子类继承父类的属性和操作,子类可以声明新的属性和操作,还可以剔除那些不适合其用途的父类操作。集成可以让你重用父类的代码,专注于为子类编写新代码。(P348)2、如果类BaseClass 是基类:class BaseClass{ int a, b;public:};则其对象本体含义两个整型空间。派生类继承的方式是在类定义的class类名的后面加上:“public”再加上基类名。如果B继承了BaseClass类,则:class B : public BaseClass{ int c;public:};派生类对象本体包含两个部分,一个为基类部分,既包含两个整型空间,.. 阅读全文
posted @ 2012-05-01 09:58 谷堆旁边 阅读(271) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第八章 类
摘要:第八章一、知识点1、成员函数在定义时不需要日期类参数,而普通函数却必须有,这是因为,成员函数在调用时因为捆绑了对象,其实已经含有对象参数了。(P277)2、C++ 类定义体的花括号对的后面一定得有分号。(P278)3、只要是在类定义中包含的成员函数,就有默认声明内联的性质,也就是说,该成员函数出于被编译自动安排到最佳运行性能的状态。因此,为了获取最佳性能,就应在类编程设计时,尽量把成员函数写入类定义中。(P278)4、如果对象是以对象指针间接访问的形式操作的,则对象与成员函数之间就用双字符的箭头“->”,即形式:(P279)objectName->memberFunctionNam 阅读全文
posted @ 2012-05-01 09:57 谷堆旁边 阅读(323) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第七章 程序结构
摘要:第七章一、知识点1、因为头文件总是伴随着提供真正的资源,如函数定义等。因而,它不仅仅包括函数声明,它基本上还包括:(P241)2、全局数据在程序存储结构中置身于全局数据区的位置,全局数据区的整个区域在程序启动时,初始化为0。(P244)3、在程序中,有的函数是为文件中的其他函数服务的,并不对外提供服务,这些函数声明为静态,表示局部于文件。同样有的变量只为本文件服务,也不是全局数据应标以static。这些函数和变量称为静态全局函数和静态全局变量。(P251)4、静态局部变量驻留在全局数据区,默认初始化的值为0,而且不会受函数的调用和返回的影响。函数第一次被调用时,静态局部变量被建立,以后该变量一 阅读全文
posted @ 2012-05-01 09:56 谷堆旁边 阅读(287) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第六章 性能
摘要:第六章一、知识点1、当既要用函数调用来体现其结构化和可读性,又要使效率尽可能地高。解决办法就是将这种小函数声明为内联(inline)。(P198)inline bool isnumber(char);2、对函数的内联声明必须在调用之前。因为内联函数的代码在程序运行时是直接嵌在调用处执行的,它不影响链接,只在编译时确定运行代码。(P199)3、内联函数体应该尽可能小,且要结构简单,这样嵌入的代码才不会影响调用函数的主体结构。所以内联函数中,不能含有复杂的结构控制语句,如switch和while。如果内联函数有这些语句,则编译将无视内联声明,只是视同普通函数那样产生调用代码。当然递归函数属于结构复 阅读全文
posted @ 2012-05-01 09:55 谷堆旁边 阅读(233) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第五章 函数机制
摘要:第五章一、知识点1、为了防止传递指针参数或者引用参数时破坏非本地数据,需要在指针和引用参数上加const修饰,以限制函数体中对参数的写操作。(P164)2、运行时内存布局:一个程序要运行,就要先将可执行程序文件装载到计算机的内存中。装载是操作系统掌控的,一般而言,操作系统将程序装入内存后,将形成一个随时可以运行的进程空间,该进程空间分四个区域,如下图所示:(P165)(1)、代码区存放的是程序的执行代码。所谓执行代码就是索引了的一个个函数块代码,它由函数定义块的编译得到。(2)、全局数据区存放全局数据、常量、文字量、静态全局量和静态局部量。(3)、堆区存放动态内存,供程序随机申请使用。(4)、 阅读全文
posted @ 2012-05-01 09:54 谷堆旁边 阅读(326) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第四章 计算表达
摘要:第四章一、知识点1、若干个表达式以逗号操作符隔开,称为逗号表达式。逗号表达式具有值,其值为最后一个子表达式的值。但逗号表达式的求值过程是从左边第一项开始,逐项进行的。(P124)2、浮点数在比较大小时用abs(d1 - d2) < 1e - 05 比用 d1 == d2要合理。(P130)3、关于隐式类型转换:(P 131)4、关于位操作:(P140)5、增量操作:因此,作为表达式的结果,前增量返回的是左值,后增量返回的不是左值。于是:++a++就不正确了,它按照优先级就是++(a++),而a++非左值不能做前增量操作。(P143)6、编译器的“贪吃法则”:所谓贪吃,就是指只要能理解(能 阅读全文
posted @ 2012-05-01 09:52 谷堆旁边 阅读(234) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第三章 数据类型
摘要:第三章一、知识点1、数据类型是指:(P84)(1)、一定的数据在计算机内部的表示方式;(2)、该数据所表示的值的集合;(3)、在该数据上的一系列操作。2、通常的计算机语言在计算机内部都是以二进制补码形式表示整数的。将十进制正整数转换成二进制补码形式的整数。转换的方法是采用“除2取余法”,即对被转换的十进制整数除以2,取其余数,并将商再除以2,再取余数,直到商为0.每次除下来的余数按先后构成了从低位到高位的二进制整数。例如:(P85)3、一个十进制负整数,表示成二进制补码形式的整数时,该负整数的对应正整数先转换成二进制数,然后“取补”,规则是“取反加一”,例如:用二进制补码表示的数中,以最高位是 阅读全文
posted @ 2012-05-01 09:49 谷堆旁边 阅读(274) 评论(0) 推荐(0)
C++程序设计教程--读书笔记 第二章 基本编程语句
摘要:第二章一、知识点1、switch括号中的表达式只能是整型、字符型或枚举型表达式。(P51)2、“case 值: ”即标号,标号是不能重复的名字,所以每一个case常量表达式的值必须互不相同。例如:(P52)case 'A' : cout << "this is A\n";case 65: cout << "this is 65\n"; // 错:’A‘等于ASCII 码的653、do-while 循环存在结构上的一些问题容易引起错误,例如:int sum = 0;do{ int i = 1; sum += i; i 阅读全文
posted @ 2012-05-01 09:44 谷堆旁边 阅读(307) 评论(0) 推荐(0)
高质量C/C++编程指南--读书笔记九 9、10、11章
摘要:第九章 类的构造、析构函数一、知识点1、对于一个类,如果不想编写构造、析构、赋值函数,那么C++编译器将自动为 A 产生四个缺省的函数,如 (P69)A(void); // 缺省的无参数构造函数A(const A &a); // 缺省的拷贝构造函数~A(void); // 缺省的析构函数A & operate =(const A &a); // 缺省的赋值函数“缺省的拷贝构造函数”和“缺省的赋值函数”均采用“位拷贝”而非“值拷贝”的方式来实现,倘若类中含有指针变量,这两个函数注定将出错。2、构造函数初始化表的使用规则:(P70)(1)、如果类存在继承关系,派生类必须在其 阅读全文
posted @ 2012-05-01 09:40 谷堆旁边 阅读(208) 评论(0) 推荐(0)
高质量C/C++编程指南--读书笔记七 7、8章
摘要:第七章 内存管理一、内存管理1、内存使用规则:(P45)(1)、用malloc 或 new 申请内存之后,应该立即检查指针值是否为NULL 。防止使用指针值为 NULL 的内存。(2)、不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。(3)、避免数组或指针的下标越界,特别要当心发生“多1” 或者 “少1” 操作。(4)、动态内存的申请和释放必须配对,防止内存泄露。(5)、用free 或 delete 释放了内存之后,立即将指针设置为NULL,防止产生“野指针”。2、指针与数组:#includeusing namespace std;int main(){ char str. 阅读全文
posted @ 2012-05-01 09:37 谷堆旁边 阅读(306) 评论(0) 推荐(0)
高质量C/C++编程指南--读书笔记五 5、6章
摘要:第五章 常量一、知识点1、const与#define的比较:(P33)(1)、const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。(2)、有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。2、类中的const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。不能再类声明中初始化const数据成员。const数据成员的初始化只能在类构造函数的初始化表中进行。建立在整个类中都恒定的 阅读全文
posted @ 2012-05-01 09:33 谷堆旁边 阅读(190) 评论(0) 推荐(0)
高质量C/C++编程指南--读书笔记三 3、4章
摘要:第三章 命名规则一、知识点1、命名规则:(P23)(1)、在Windows中应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child。(2)、全局函数的名字应当使用“动词” 或者“ 动词+ 名词”。类的成员函数应当只用“动词”,被省略掉的名词就是对象本身。2、简单的Windows 应用程序命名规则:(P23)(1)、类名和函数名用大写字母开头的单词组合而成。(2)、变量和参数用小写字母开头的单词组合而成。(3)、常量全用大写的字母,用下划线分割单词。(4)、静态变量加前缀s_(表示static)。(5)、如 阅读全文
posted @ 2012-05-01 09:31 谷堆旁边 阅读(267) 评论(0) 推荐(0)
高质量C/C++编程指南--读书笔记一 1、2章
摘要:第一章 文件结构一、知识点1、头文件编写规则:(P12)(1)、为了防止头文件被重复引用,应当用ifndef/ define/ endif 结构产生预处理块。(2)、用#include <filename.h>格式引用标准库的头文件(编译器将从标准库目录开始搜索)。(3)、用#include "filename.h"格式引用非标准库的头文件(编译器将从用户的工作目录汇总开始搜索)。2、头文件的作用:(P13)(1)、通过头文件来调用库功能。(2)、头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的 阅读全文
posted @ 2012-05-01 09:29 谷堆旁边 阅读(272) 评论(0) 推荐(0)
C陷阱与缺陷--读书笔记8 建议与答案 及 附录A
摘要:第八章一、知识点1、在判断相等的比较表达式时可以把常量放在表达式的左侧。例如:(P130)c == '\t' 改写为 '\t' == c附录A一、知识点1、printf函数是把数据写到标准输出,而fprintf函数则可以把数据写到任何文件中。需要写入的特定文件,将作为fprintf函数的第1个参数,它必须是一个文件指针。因此,printf(stuff);从意义上来说就等效于fprintf(stdout, stuff);当输出数据不是被写入一个文件时,我们可以使用sprintf函数。sprintf函数的第1个参数是一个指向字符数组的指针,sprintf函数将把其输 阅读全文
posted @ 2012-05-01 09:27 谷堆旁边 阅读(1369) 评论(0) 推荐(0)
C陷阱与缺陷--读书笔记7 可移植性缺陷
摘要:第七章一、知识点1、ANSI C标准所能保证的只是,C实现必须能够区别出前6个字符不同的外部名称。而且,这个定义中并没有区分大写字母与其对应的小写字母,所以在选择外部标识符时应该注意。(P113)2、如果c是一个字符变量,使用 (unsigned) c 就可得到与 c 等价的无符号整数。这是会失败的,因为在将字符 c 转换为无符号整数时,c 将首先被转换为 int 型整数,而此时可能得到非预期的结果。正确的方式是使用语句 (unsigned char) c ,因为一个 unsigned char 类型的字符在转换为无符号整数时无需首先转换为 int 型整数,而是直接进行转换。(P116)3、除 阅读全文
posted @ 2012-05-01 09:25 谷堆旁边 阅读(407) 评论(0) 推荐(0)
C陷阱与缺陷--读书笔记6 预处理器
摘要:第六章一、知识点1、getchar和putchar经常被实现为宏,以避免在每次执行输入或者输出一个字符这样简单的操作时,都要调用相应的函数而造成系统效率的下降。(P100)2、宏只是对程序的文本起作用,宏提供了一种对组成C程序的字符进行变换的方式,而并不作用于程序中的对象。(P101)3、对于宏定义:(P101)#define f (x) ((x) - 1)f(x) 代表的是(x) ((x) - 1)。这是因为 f 和后面的(x)之间多了一个空格,如果希望定义f(x) 为 ((x) - 1),必须这样写:#define f(x) ((x) - 1)这一规则不适用于宏调用,而只对宏定义适用。因此 阅读全文
posted @ 2012-05-01 09:24 谷堆旁边 阅读(518) 评论(0) 推荐(0)
C陷阱与缺陷--读书笔记5 库函数
摘要:第五章一、知识点1、对于一个例子:#include <stdio.h>main(){ char c; while((c = getchar()) !=EOF) putchar(c);}getchar函数在一般情况下返回的是标准输入文件中的下一个字符,当没有输入时返回EOF。这依程序乍一看似乎是把标准输入复制到标准输,实则不然。原因在于程序中的变量c被声明为char型,而不是int类型。这意味着c无法容下所有可能的字符,特别是,可能无法容下EOF。(P92)2、更新顺序文件:(P93)3、C语言实现通常都允许程序员进行实际的写操作之前控制产生的输出数量。这种控制能力一般通过库函数se 阅读全文
posted @ 2012-05-01 09:23 谷堆旁边 阅读(524) 评论(0) 推荐(0)
C陷阱与缺陷--读书笔记3 语义“陷阱”
摘要:第三章一、知识点1、C语言中的数组值得注意的地方有以下两点:(P41)(1)、C语言中只有一维数组,而且数组的大小必须在编译期就作为一个常数确定下来。然而,C语言中数组的元素可以是任何类型的对象,当然也可以是另外打的一个数组。(2)、对于一个数组,我们只能够做两件事:确定该数组的大小,以及获得指向该数组下标为0的元素的指针。其他有关数组的操作,哪怕它们乍看上去十一数组下标进行运算的,实际上都是通过指针进行的。换句话说,任何一个数组下标运算都等同于一个对应的指针运算,因此我们完全可以依据指针行为定义数组下标的行为。2、对于int calendar[12][31]; 这个语句生命了calendar 阅读全文
posted @ 2012-05-01 09:19 谷堆旁边 阅读(382) 评论(0) 推荐(1)
C陷阱与缺陷--读书笔记4 连接
摘要:第四章一、知识点1、典型的连接器把由编译器或汇编器生成的若干个目标模块,整合成一个被称为载入模块或可执行文件的实体,该实体能够被操作系统直接执行。(P74)2、连接器通常把目标模块看成是由一组外部对象组成的。每个外部对象代表着机器内存中的某个部分,并通过一个外部名称来识别。因此,程序中的每个函数和每个外部变量,如果没有被声明为static,就都是一个外部对象。除了外部对象之外,目标模块还可能包括了对其他模块中的外部对象的引用。当连接器生成载入模块的过程中,它必须同时记录这些外部对象的引用。当连接器读入一个目标模块时,它必须解析出这个目标模块中定义的所有外部对象的引用,并作出标记说明这些外部对象 阅读全文
posted @ 2012-05-01 09:19 谷堆旁边 阅读(219) 评论(0) 推荐(0)
C陷阱与缺陷--读书笔记2 语法“陷阱”
摘要:第二章一、知识点1、函数运算符()的优先级高于单目运算符*。(P26)2、我们一旦知道了如何声明一个变量,也就自然知道如何对一个常数进行类型转换,将其转型为该变量的类型:只要在变量声明中将变量名去掉即可。(P27)例如:fp是一个指向返回值为void类型的函数的指针,那么(*fp)()的值为void,fp的声明为:void (*fp)();将常数0转型为“指向返回值为void的函数的指针”类型,可以这样写:(void (*)()) 03、关于操作符优先级:(P30)(1)、优先级最高者并不是真正意义上的运算符,包括:数组下标、函数调用操作符、各结构成员选择操作符。它们都是自左向右结合;(2)、 阅读全文
posted @ 2012-05-01 09:18 谷堆旁边 阅读(309) 评论(0) 推荐(0)
C陷阱与缺陷--读书笔记1 词法“陷阱”
摘要:第一章一、知识点1、术语“符号”(token)指的是程序的一个基本组成单元。(P15)2、除了字符串与字符常量,符号的中间不能嵌有空白(空格符、制表符、换行符)。例如:下面的表达式:a---b与表达式a -- - b的含义相同,而与a - -- b的含义不同。(P19)3、在C语言中,用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制值为零的字符‘\0’初始化。(P21)4、a+++++b唯一有意义的解释是a++ + ++b,但它也有可能被理解为 阅读全文
posted @ 2012-05-01 09:17 谷堆旁边 阅读(351) 评论(0) 推荐(0)
C专家编程--读书笔记十一 你懂得C,所以C++不在话下
摘要:第十一章一、知识点1、面向对象的关键就是把一些数据和对这些数据进行操作的代码组合在一起,并用某种手法将它们做成一个单元。面向对象编程的特点是继承和动态绑定。C++ 通过类的派生支持继承,通过虚拟函数支持动态绑定。虚拟函数提供了一种封装类体系实现细节的方法。(P247)2、面向对象编程的关键概念:(P248)(1)、类:类是一种用户定义类型,就好像是int这样的内置类型一样。内置类型已经有了一套完善的针对它的操作(如算术运算等),类机制也必须允许程序员规定他所定义的类能够进行的操作。类里面的任何东西被称作类的成员。(2)、对象:某个类的一个特定变量,就像j可能是int类型的一个变量一样,对象也可 阅读全文
posted @ 2012-05-01 09:15 谷堆旁边 阅读(358) 评论(0) 推荐(0)
C专家编程--读书笔记十 再论指针
摘要:第十章一、知识点1、C标准规定%s说明符的参数必须是一个指向字符数组的指针。所以如:char *p = NULL;printf("%s", p);这是不正确的。NULL是一个指针,但它并不指向一个字符数组。(P236)2、在C语言中,数组是静态的,数组的长度在编译时已确定不变:(P237)3、在C语言中实现动态数组:(P239)二、问题1、编写一个main()程序,使用上面提到的那个函数。检查一下原先的数组,并填充足够的元素,使之调用realloc()函数进行扩张。(P241) 阅读全文
posted @ 2012-05-01 00:17 谷堆旁边 阅读(186) 评论(0) 推荐(0)