C++ Primer
song_4
在通往大神的路上奋斗!
展开
-
第四届蓝桥杯值之高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:17原创 2014-12-25 15:35:27 · 549 阅读 · 0 评论 -
练习5.20
编写一段程序,从标准输入中读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完位置。使用while循环一次读取一个单词,当一个单词连续出现两次时使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有任何单词是连续重复出现的。#include #include using namespace std;int main(){ st原创 2014-12-25 15:26:51 · 392 阅读 · 0 评论 -
练习6.25
编写一个main函数,令其接受两个实参,把实参的内容连接成一个string对象并输出出来。#include using namespace std;int main(int argc,char *argv[]){ if(argc != 3){ cout<<"error"<<endl; return 0; } cout<<ar原创 2014-12-28 14:57:12 · 443 阅读 · 0 评论 -
练习6.17
编写一个函数,判断string对象中是否含有大写字母。编写另一个函数,把string对象全都改成小写形式。#include #include using namespace std;void isuper(const string str){ for(auto i=0;i<=str.size();i++){ if(isupper(str[i]))原创 2014-12-28 14:54:52 · 348 阅读 · 0 评论 -
练习6.27
编写一个函数,它的参数是initializer_list类型的对象,函数的功能是计算列表中所有元素的和。#include #include using namespace std;void sum(initializer_list n){ int sum_math=0; for(auto i=n.begin();i!=n.end();i++)原创 2014-12-28 14:57:53 · 378 阅读 · 0 评论 -
练习6.42
给make_plural函数的第二个形参赋予默认参数‘s’,利用新版本的函数输出单词success和failure的单数和复数形式。#include using namespace std;string make_plural(size_t ctr,const string &word,const string &ending="s"){//注意给string赋值必须用双引号原创 2014-12-28 14:59:07 · 403 阅读 · 0 评论 -
练习6.21
编写一个函数,该函数具有两个形参,分别为int型和指向int型的指针,并返回这两个int值之中较大的数值。#include using namespace std;int change(int n,int *p){ if(n>*p) return n; else return *p; }int main(){ in原创 2014-12-28 14:56:19 · 367 阅读 · 0 评论 -
练习6.33
编写一个递归函数,输出vector对象的内容。#include #include using namespace std;void digui(vector vec,size_t i){//vector使用的下标也是size_t,和数组一样 cout<<vec[i]<<endl; if(i!=0) digui(vec,--i); }int mai原创 2014-12-28 14:58:32 · 361 阅读 · 0 评论 -
练习7.9
对于Person类,添加读取和打印Person对象的操作。#include #include using namespace std;struct Person{ string name; string address; string p_name() const{ return name; } string p_address() const{原创 2014-12-30 15:09:55 · 452 阅读 · 0 评论 -
练习7.22
修改你的Person类使其隐藏实现的细节。#include #include using namespace std;class Person{ friend istream &read(istream &input,Person &item);//友元在类中用friend声明 private: string name; string addres原创 2014-12-30 15:11:02 · 353 阅读 · 0 评论 -
练习5.14
编写一段程序,从标准输入中读取若干string对象并查找连续重复出现的单词。所谓连续重复出现的意思是:一个单词后面紧跟着这个单词本身。要求记录连续重复出现的最大次数以及对应的单词。如果这样的单词存在,输出重复出现的最大次数:如果不存在,输出起跳信息说明任何单词都没有连续出现过。例如,如果输入是 how now now now Brown cow cow那么输出应该表明单词now连续输出了3原创 2014-12-25 15:24:14 · 362 阅读 · 0 评论 -
练习3.35
编写一段程序,利用指针将数组中的元素置为0#include #include using namespace std;int main(){ int a[]={1,2,3,4,5,6,7,8}; int *p=begin(a); int *p1=end(a); for (*p;p!=p1;*p++){ *p=0; }原创 2014-12-25 15:22:09 · 428 阅读 · 0 评论 -
练习5.19
编写一段程序,使用do while循环重复执行下述任务:首先提示用户输入两个string对象,然后填出较短那个并输出它。#include //#include using namespace std;int main(){ string reply; do{ cout<<"输入两个string对象"<<endl; string s原创 2014-12-25 15:26:01 · 348 阅读 · 0 评论 -
练习5.25
关于异常处理#include //#include #include using namespace std;int main(){ int a,b; string reply; while(cin>>a>>b){ try{ if(b==0) throw range_error("do原创 2014-12-25 17:15:50 · 352 阅读 · 0 评论 -
练习3.17
题目:从cin读入一组词并把它们存入一个vector对象,然后设法把所有单词都改成大写形式。输出改变后的结果,每个词占一行。#include #include #include using namespace std;using std::vector; int main(){ string a; vector b; wh原创 2014-12-25 15:19:04 · 434 阅读 · 0 评论 -
练习3.21
把text的第一段全都改成大写形式,然后再输出它#include #include #include using namespace std;using std::vector; int main(){ vector v1; string str1; getline(cin,str1); for(int i原创 2014-12-25 15:20:46 · 369 阅读 · 0 评论 -
练习3.43
编写3个不同版本的程序,令其均能输出ia的元素。版本1使用范围for语句管理迭代过程;版本2和版本3都使用普通的for语句,其中版本2要求用下标运算符,版本3要求用指针。此外,在所有3个版本的程序中都要直接写出数据类型,而不能使用类型别名、auto关键字或decltype关键字。#include //#include using namespace std;int main()原创 2014-12-25 15:22:44 · 378 阅读 · 0 评论 -
练习5.17
假设有两个包含整数的vector对象,编写一段程序,检验其中一个vector对象是否是另一个的前缀。为了实现这一目标,对于两个不等长的vector对象,只需挑出长度较短的那个,把它的所有元素和另一个vector对象比较即可。例如,如果两个vector对象的元素分别是0、1、1、2 和0、1、1、2、3、5、8,则程序的返回结果应该为真。#include #include原创 2014-12-25 15:24:48 · 429 阅读 · 0 评论 -
UVa 489 刽子手游戏
游戏规则,计算机想一个单词让你猜,你每次可以猜一个字母,如果单词里有那个字母,所有该字母都会显示出来,如果没有那个字母则计算机会在一副“刽子手”画上填一笔,这幅画一共需要7笔就能完成,因此你最多只能错6次。注意猜一个已经猜过的字母也算错。在本题中,你的任务是编写一个“裁判”程序,输入单词和玩家的猜测,判断玩家赢了,(You win.)、输了(You lose.)、还是放弃了(You chi原创 2014-12-25 15:30:28 · 492 阅读 · 0 评论 -
练习3.20
读入一组整数并把它们存入一个vector对象,将每对相邻整数的和输出出来。改写你的程序,这次要求先输出第1个和最后1个元素的和,接着输出第2个和倒数第2个元素的和,以此类推。#include #include #include using namespace std;using std::vector; int main(){ int b;原创 2014-12-25 15:19:53 · 329 阅读 · 0 评论 -
练习3.23
编写一段程序,创建一个含有10个整数的vector对象,然后使用迭代器将所有元素的值都变成原来的两倍。输出vector对象的内容,检验程序是否正确。#include #include #include using namespace std;using std::vector; int main(){ vector v1={1,2,3,4,5,6,7,8原创 2014-12-25 15:21:29 · 383 阅读 · 0 评论 -
练习7.15
为你的Person类添加正确的构造函数。#include #include using namespace std;struct Person{ string name; string address; Person()=default; Person(const string &s,const string &n):name(s),address原创 2014-12-30 15:10:32 · 376 阅读 · 0 评论