自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 有序数组的二分查找

int findValue(int a[], int value, int first, int last){ if(first<=last){ int mid=(first+last)/2; if(value>a[mid]) findValue(a,value,mid+1,last); else if(value<a[mid]) findValue(a,value,first,mid-1); else return mid; } else { retur.

2021-12-01 19:19:09 637

原创 C++ 选择排序,插入排序,冒泡排序,快速排序

void swap(int &ival1, int &ival2){ int temp; temp = ival1; ival1 = ival2; ival2 = temp;}//选择排序算法:void selectSort(int a[],int arraysize){ for(int i=0;i!=arraysize;i++){ int min=i; for(int j=i+1;j!=arraysize;j++){ if(a[j]<a[min]).

2021-12-01 11:46:39 122

原创 编写一个递归函数,输出vector对象的内容

int main(){ string str,temp_str(""),final_str(""); unsigned cnt=1,temp_cnt=1; cout<<"请输入字符串:"<<endl; while(cin>>str){ if(temp_str==str){ ++cnt; } else{ if(cnt>temp_cnt){ //如果某两个单词出现的最大次数相等,没有办法处理, ..

2021-11-15 18:00:17 1141

原创 习题6.10:编写一个函数,使用指针形参交换两个整数的值。

void swap(int* ip1, int* ip2){ int temp; temp = *ip1; *ip1 = *ip2; *ip2 = temp; }int main(){ int a=5, b=7; swap(&a,&b); cout<<"a="<<a<<" "<<"b="<<b<<endl; return 0;}

2021-11-14 17:16:58 1352

原创 题目1:编写一个程序把0~15之间的十进制转换为对应的十六进制。题目2:假如有一组成绩的集合,其中成绩的取值是0~100.以10分为一个分数段,要求统计各个分数段各有多少成绩。

int main(){ const string str("0123456789ABCDEF");//string str="0123456789ABCDEF";不需要修改该字符串时,最好把它定义成const string::size_type x; //int x; while(cin>>x){ if(x<str.size()){ cout<<str[x]<<" "; } else{ cout<.

2021-11-13 20:28:37 925

原创 bool值在一个程序中起到标识符的作用

题目:编写一段程序,从标准输入中读取string 对象的序列直到连续出现两个相同的单词或者所有的单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次时使用break语句终止。输出连续出现的单词,或者输出一个消息说明没有任何单词时连续重复出现的int main(){ string str,preStr=""; bool bl=true; while(cin>>str){ if(str==preStr){ cout<<str<<"

2021-11-13 19:54:01 422

原创 访问string对象的每个字符的三种做法

1.通过下标访问int main(){ string str("Hello world"); for(string::size_type st=0;st<str.size();++st){ cout<<str[st]; } return 0;}2.通过迭代器访问int main(){ string str("Hello world"); for(string::iterator iter=str.begin();iter!=str.end();++it

2021-11-11 16:49:32 1845

原创 编写程序将一个list容器的所有元素赋值给一个vector容器,其中list容器中的存储的是指向C风格的字符串char*指针,而vector容器的元素则是string类型

int main(){ char* pchar[]= {"what", "is", "your", "name"}; list<char*> clist(pchar,pchar+4); vector<string> svec; svec.assign(clist.begin(),clist.end()); for(vector<string>::iterator iter=svec.begin();iter!=svec.end();++iter){ co.

2021-11-09 10:09:27 513

原创 C++ primer第四版习题9.27:编写程序处理一个string类型的list容器。在该容器中寻找一个特殊值,如果找到,则将它删除。

int main(){ list<string> slist; string s; cout<<"请输入多个字符串:"<<endl; while(cin>>s){ slist.push_back(s); } string searchvalue("hello"); for(list<string>::iterator iter=slist.begin();iter!=slist.end();++iter){ if(*ite.

2021-11-08 21:20:29 544

原创 题目:定义一个数组,将该数组复制到一个vector和一个list容器中,然后将vector中的偶数值删掉,将list 中的奇数值删掉。

一开始写的代码会报这个错误: vector iterator incompatib,错误代码如下:int main(){ int ia[]={0,1,1,2,3,5,8,13,21,55,89}; vector<int> ivec(ia,ia+11); list<int> ilist(ia,ia+11); vector<int>::iterator iter_ivec=ivec.begin(); list<int>::iterator it

2021-11-08 20:16:30 212

转载 编写一个循环将list容器中的元素逆序输出:

#include<iostream>#include<list>using namespace std;int main(){ int ia[5]={1 , 2 , 3 , 4 , 5}; list<int> lst1(ia , ia + 5); list<int>::iterator iter1 = lst1.begin(), iter2 = lst1.end(); while(iter2 !...

2021-11-06 11:52:17 313

原创 编写程序计算数组元素之和。要求编写函数三次,每次以不同的方法处理数组边界。

第一种是在数组后面加一个结束标志,比如下面加了99999这样的数(加这样的数可能不太好,,)int sum_arr(const int ia[]){ int sum=0,index=0; while(ia[index]!=99999){ sum+=ia[index]; ++index; } return sum;}int main(){ int a[5]={1,3,6,8,99999}; cout<<sum_arr(a)<<endl; retu

2021-11-04 15:51:37 356

原创 编写函数交换两个int型的值,输出交换后的值

用指针来写:void swap(int* x,int* y){ int temp; temp=*y; *y=*x; *x=temp;}int main(){ int a,b; int* pa=&a; int* pb=&b; cout<<"请输入两个整数"<<endl; cin>>a>>b; cout<<"a="<<a<<" "<<"b="<<b&l

2021-11-03 22:00:07 584

原创 编写一个函数,该函数具有两个形参,分别为int型和指向int型的指针,并返回这两个int值之中较大的数值。

这里主要想说明一下采取哪种书写指针的风格比较好:int *a与int* a。以后采取int* a的书写风格int max(int a, int* b)//我现在觉得这种指针的声明方式比较好,//这样声明指针和取指针所指向的值运算不容易混淆。只是这样声明要注意的是连续声明多个指针不可以像 int *a, *b;这样。要分开声明 int* a; int* b;{ if(a>*b) //此处*b的*是取指针b所指向的对象的值运算 return a; else re

2021-11-03 21:40:06 913

原创 读取一段文本到vector对象中,每个单词存储为vector中的一个元素。把vector对象中每个单词转化为大写字母。输出vector对象中转化后的元素,每八个单词为一行输出。

比较使用下标操作和使用迭代器操作来访问vector中的元素的代码不同。下标操作如下:int main(){ vector<string> svec; string s; cout<<"输入一段文本(ctrl+z结束):"<<endl; while(cin>>s) { svec.push_back(s); } if(svec.size()==0) { cout<<"这段文本长度为0"<<endl; re

2021-10-30 20:02:13 702

原创 编写一个程序,从string对象中去掉标点符号

想法是先创建一个新的字符串,把原字符串非标点的字符赋值给新字符串。一开始写的错误代码是这样的int main(){ string s; cout<<"请输出带标点的字符串:"<<endl; cin>>s; string::size_type index_new=0; string s_new; for(string::size_type index=0; index!=s.size();++index) { if(!(ispunct(s[inde

2021-10-30 10:50:37 541

原创 C++ primer 1.4.4 读入未知数目的输入并求和

题目:不知道要对多少个数求和,而是要一直读到程序输入结束。输入结束时,程序将综合写道标准输出。(以前遇到过类似的问题不会处理,C++primer看到了类似的例子,在此记录一下)#include <iostream>using namespace std;int main(){ int sum=0,value; while(cin>>value) { sum+=value; } cout<<"Sum is:"<<sum<&...

2021-10-26 17:22:13 259

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除