03 2011 档案
摘要:#include<iostream>class Sales_item{ friend std::istream& operator>>(std::istream&, Sales_item&); friend std::ostream& operator<<(std::ostream&, const Sales_item&);private: int a;public: Sales_item(int b):a(b){}; Sales_item():a(0){}; //Sales_item operator +(c
阅读全文
摘要:这篇文章很不错!!http://patmusing.blog.163.com/blog/static/13583496020103255219855/典型地,C++通过虚函数实现多态性。多态性的定义:“无论发送消息的对象属于什么类,他们均发送具有相同形式的消息,对消息的处理方式可能随接受消息的对象而变。”具体地说,“在某个基类上建立起来的类的层次结构中,可以对任何一个派生类的对象中的同名成员函数进行调用,而被调用的成员变量所提供的处理可以随其所属的类而改变。”虚函数首先是一种成员函数,它可以在该类的派生类中被重新定义并被赋予另外一种处理功能。我们先来看看下面的例子:#include <i
阅读全文
摘要:那是很给力啊:关于sizeof ,今天出来讨论下,希望感兴趣的童鞋都来一起讨论。 PS: 由于某些编译器的差异,这里只讨论VC++的情况 sizeof是C/C++下的运算符,可用于任何变量名、类型名或常量值。 sizeof有三种语法形式,如下: 1) sizeof( object ); // sizeof( 对象 ); 2) sizeof( type_name ); // sizeof( 类型 ); 3) sizeof object; // sizeof 对象; 今天主要讨论指针和数组的使用 具体其他的 可以自己查阅MSDN 指针变量的sizeof 指针记录了另一个对象的地址。既然是来存放地址
阅读全文
摘要:同学让我看了一道题:int getsize(char p[100]="hello"){ return sizeof(p);}int main(int argc, char* argv[]){ char a[200]="hello!"; cout<<sizeof(a)<<endl<<getsize("OK")<<endl; return 0;}第一个返回200,第二个却返回4,sizeof(a)返回数组的大小,而第二个实际上是指针变量的大小,怎么回事呢?在网上看到强人分析的MSDN才知道原
阅读全文
摘要:问题描述:某高校要统计校内学生的各科成绩总分和各门科的平均分,需要编写一个程序来完成输入:多组测试数据,每组测试数据里:第一行是n,k(1<=n<=1e6,1<=k<=1000),n是学生数目,k是科目数。接下来就是n*k个数,每k个就是一个学生所有科目的成绩,是在0-100之间的数输出:对于每组测试数据:第一行输出各学生的成绩总分第二行输出各科平均分(四舍五入到整数)最后多输出一个空行表示分隔样例输入:3 2100 10090 9080 802 390 90 9060 60 602 21 2 3 4样例输出:200 180 16090 90270 18075 75 7
阅读全文
摘要:测试字符串是否是回文字串 1. bool is_palindrome(char *str, int size) 2. { 3. int tmp1 = size-2, tmp2 = (size-1)/2; 4. for (int i = 0; i < tmp2; ++i) 5. { 6. if (str[i] != str[tmp1-i]) 7. return false; 8. } 9. return true; 10. } 然后,不管对应位置的大小写:可以这么写:# bool is_palindrome(char *str, int size) # { # int tmp1 = siz
阅读全文
摘要:表示还是想了一段时间的,C长时间没看比较晕了:#include <iostream>using namespace std;char* reversal(char *test,int size){ char *test1 = new char[size]; int tmp = size-2 ; for (int i = 0; i <= tmp; ++i) { test1[i] = test[tmp-i]; } test1[size-1]='\0'; return test1;}int main(){ char a[]="abcdefg";
阅读全文
摘要:#include<iostream>#include<string.h>using namespace std;#define MAX_VERTEX_NUM 50 //定义最大的结点数typedef enum{DG,UDG}GraphKind; //定义图的种类DG(有向图) UDG(无向图)typedef char VertexData; //定义结点信息的数据类型//定义弧结点typedef struct EdgeNode{int adjvex; //该弧指向顶点的位置VertexData data;EdgeNode *next;}EdgeNode;//定义表头结点
阅读全文
摘要:程序设计俱乐部看到的:自己又想了想,代码也比较简单吧:#include<iostream>using namespace std;int fun(int a=0,int b=5){ return (a+b);}bool bad(int a,int b,int c){ return a+b<c;}int main(){ for (int c=1; c<50; c++) { for (int b=1; b<100; b++) { for (int a = b>c?(b+1):(c+1); a<100; a++) { if (bad(c,b,a)) brea
阅读全文
摘要:string str1 = "123"; string str2 = str1;str1 = "456";cout << "str1 = " << str1 << endl // 輸出 456 << "str2 = " << str2 << endl << endl; // 輸出 123也就是说str1改变,str2并不改变,如果想str1与str2享用同一个字符串空间可以这么改一下: string str1 = "123
阅读全文
摘要:主要学习下简单的构造函数构造:#include <iostream>using std::cout;using std::cin;using std::endl;#include <string>using std::string;using std::getline;class GradeBook{private: string courseName;public: GradeBook():courseName(""){}; GradeBook(string s):courseName(s){}; void setName(string newNa
阅读全文
摘要:给大家分享一下我第一次参加面试时的一个题目:问题:对于任意一个正整数 N,按以下操作把它转化为一个单一数字(大于 0 小于 10的数):把 N 的各位上数字相加,若得到的结果不是一个单一数字,就把结果的各位上的数字相加,若得到的结果还不是一个一位数,就还把结果的各位上的数字相加,……直到结果为一个单一数字为止。如:23452+3+4+5=141+4=5 结果就为 5。 请写出一个方法,当传入任意一个正整数时,返回它按以上操作所得到的单一数字。这个是刚才一个网友贴出来的,我也想了个方法,就是先把数字转换成string,然后再进行出来,总之就是转来转去吧,代码还是比较少的:#include &l
阅读全文
摘要:想法:a,a+1,...,a+n-1共n个数相加和为n*(2*a+n-1)/2=100简单推论:a<50或a=100;n>=2或n==1因此代码可以写为:#include<iostream> using namespace std;int main(){ for(int i = 2; i < 50; ++i) { int sum = i; for(int j = i+1; j < 50; ++j) { sum += j; if(sum == 100) { for (int k = i; k <= j; ++k) { cout << k &l
阅读全文
摘要:用c++编写程序,输入两个集合的元素(分别保存到数组,注意一个集合中的元素不能重复),求出它们的并集。例如,有集合a={1,3,5,7,9}, b={1,2,5,4,6},并集c={1,3,5,7,9,2,4,6}。设计时,可以先将一个数组的所有元素存入并集中,对另一个集合的每个元素逐个进行判别:若不属于并集则加入其中我的代码:#include <iostream>#include <algorithm>using namespace std;//检查b是否在数组a中inline bool f1(int *a, int size_a,int b){ if (b <
阅读全文
摘要:xiaoboalex网友贴的代码,暂时没看,过几天再看下,当是存起来吧:#define NULL 0#include <iostream>using namespace std;void swap(int arr[], int i, int j){ int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;}void move(int arr[], int s, int e, int& i, int delta){ i += delta; while (i >= s && i <= e &&
阅读全文
摘要:1. C: Dennis Ritchie于1972年在贝尔实验室开发出来;是一种命令式语言(imperative system language)注:命令式语言又称强制式语言,通过指明一系列可执行的运算及运算的次序来描述计算过程的语言。平时我们用的大多数语言(比如,C,C+,Java,C#,Python等)都是命令式语言。与它相对的是函数式语言(functional language),如Haskell,Lisp。函数式语言更像数学,命令式语言更接近人的思维。2. C的典型特征:1)编译型语言(compiled language)(相对于解释型语言来说) 编译型语言:程序在执行之前需要一个专门
阅读全文
摘要:#include <stdio.h> int main(int AC, char **AV){ FILE *fd = fopen("data", "w+"); fprintf(fd, "%x%c", 0x41, '1'); fseek(fd, 0, SEEK_SET); int n; fscanf(fd, "%d", &n); fseek(fd, 0, SEEK_SET); char s[4]; int c = fread(s, 1, sizeof(s), fd); s[c] =
阅读全文