前言:自己做的,如果有错误,要提出来哟...
//3.1
略
//3.2
/*
#include<iostream>
using namespace std;
int main()
{
string line;
getline(cin,line);
cout<<line<<endl;
}
#include<iostream>
using namespace std;
int main()
{
string line;
while(cin>>line)
cout<<line<<endl;
}
*/
//3.3
/*
输入运算符:不放入
getline:把那个放入
*/
//3.4
/*
#include<iostream>
using namespace std;
int main()
{
string line1;
string line2;
cin>>line1>>line2;
if(line1>line2)
cout<<line1;
else
cout<<line2;
}
#include<iostream>
using namespace std;
int main()
{
string line1;
string line2;
cin>>line1>>line2;
if(line1!=line2)
{
if(line1>line2)
cout<<line1;
else
cout<<line2;
}
}
*/
//3.5
/*
#include<iostream>
#include<string>
using namespace std;
int main()
{
string line1;
string line2;
while(cin>>line1)
{
line2+=line1;
}
cout<<line2<<endl;
}
*/
//3.6
/*
#include<iostream>
using namespace std;
int main()
{
string line;
cin>>line;
for(auto &c:line)
{
c='X';
}
cout<<line<<endl;
}
*/
//3.7
/*
不是c++11...不能调试,大家自己试试就可以了
*/
//3.8
/*
个人认为是while,因为我们不清楚需要循环几次
*/
//3.9
/*
合法,输出\0
#include<iostream>
using namespace std;
int main()
{
string s;
cout<<s[0]<<endl;
}
*/
//3.10
/*
#include<iostream>
#include<cctype>
using namespace std;
int main()
{
string line;
cin>>line;
for(auto c:line)
{
if(ispunct(c)!=0)
cout<<c;
}
}
*/
//3.11
合法,const char
//3.12
全对
//3.13
a:1
b:10
c:10
d:1
e:10
f:1
g:10
//3.14
/*
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int t;
vector<int>a;
while(cin>>t)
{
a.push_back(t);
}
}*/
//3.15
#include<iostream>
#include<vector>
using namespace std;
int main()
{
string t;
vector<string>a;
while(cin>>t)
{
a.push_back(t);
}
}
//3.16
/*
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int t;
vector<int>a;
while(cin>>t)
{
a.push_back(t);
}
cout<<a.size()<<endl;
for(int i=0;i<a.size();i++)
cout<<a[i]<<" ";
}
#include<iostream>
#include<vector>
using namespace std;
int main()
{
string t;
vector<string>a;
while(cin>>t)
{
a.push_back(t);
}
vector<string>::iterator it1=a.begin();
vector<string>::iterator it2=a.end();
while(it1!=it2)
{
cout<<*it1<<endl;
it1++;
}
}
*/
//3.17
/*
#include<iostream>
#include<vector>
#include<cstring>
#include<cctype>
using namespace std;
int main()
{
string t;
int i;
vector<string>a;
while(cin>>t)
{
for(i=0;i<t.size();i++)
t[i]=toupper(t[i]);
a.push_back(t);
}
vector<string>::iterator it1=a.begin();
vector<string>::iterator it2=a.end();
while(it1!=it2)
{
cout<<*it1<<endl;
it1++;
}
}
*/
//3.18
/*
不对。动态数组,这个时候还没有ivec【0】这个区域
*/
//3.20
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>iter;
int i=10;
while(i--)
iter.push_back(i);
for(i=0;i<5;i++)
cout<<iter[i]+iter[9-i]<<endl;
}
//3.21
#include <iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>ivec;
int i;
while(cin>>i)
{
ivec.push_back(i);
}
for(auto it=ivec.begin();it!=ivec.end();++it)
{
cout<<*it<<endl;
}
}
//3.22
#include <iostream>
#include<vector>
using namespace std;
int main()
{
vector<string>ivec;
string word;
while(cin>>word)
{
ivec.push_back(word);
}
auto it=ivec.begin();
for(auto itr=(*it).begin();itr!=(*it).end();itr++)
*itr=toupper(*itr);
for(auto it=ivec.begin();it!=ivec.end();++it)
cout<<*it<<endl;
}
//3.23
#include <iostream>
#include<vector>
using namespace std;
int main()
{
int i;
vector<int>ivec;
for(i=0;i<10;i++)
ivec.push_back(i);
vector<int>::iterator it=ivec.begin();
for(;it!=ivec.end();++it)
*it=2*(*it);
it=ivec.begin();
for(;it!=ivec.end();++it)
cout<<*it<<endl;
}
//3.24
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>iter;
int i=10;
while(i--)
iter.push_back(i);
vector<int>::iterator it=iter.begin();
for(;it<iter.end()-1;it=it+2)
{
cout<<(*it)+(*it+1)<<endl;
}
if(iter.size()%2!=0)
cout<<"最后一个没有"<<endl;
}
//3.25
略
//3.26
指针和迭代器不支持加法运算,只支持减法!
//3.27
a:非法:非常量
b:对
c:非常量
d:大于11了
//3.28
String的为0
Int的为随机数
//3.29
大小固定,不能随意的加元素
//3.30
For的=号不应该存在!!从0开始的
//3.31
略
//3.32
略
//3.33
那样我们无法预知score的值
//3.34
让p1=p2.
可以说p2-p1求出了差值。再让p1加上那个差值
//3.35
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a[10];
int *p=a;
int i;
for(int i=0;i<10;i++)
*(p+i)=0;
for(i=0;i<10;i++)
cout<<*p<<endl;
}
//3.36
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a[10];
int b[10];
int t;
int i;
for(i=0;i<10;i++)
{
cin>>t;
a[i]=t;
}
for(i=0;i<10;i++)
{
cin>>t;
b[i]=t;
}
int flag=1;
for(i=0;i<10;i++)
if(a[i]!=b[i])
{
flag=0;
break;
}
if(flag)
cout<<"ok"<<endl;
else
cout<<"不"<<endl;
}
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>a;
vector<int>b;
int t;
int i;
for(i=0;i<10;i++)
{
cin>>t;
a.push_back(t);
}
for(i=0;i<10;i++)
{
cin>>t;
b.push_back(t);
}
int flag=1;
for(i=0;i<10;i++)
if(a[i]!=b[i])
{
flag=0;
break;
}
if(flag)
cout<<"ok"<<endl;
else
cout<<"不"<<endl;
}
//3.37
输出每一个,每输出一个就来一个换行
//3.38
比如,a为地球到太阳的距离,b为火星到太阳的距离,b-a我们可以得到地球与火星的距离,但a+b没有任何作用
//3.39
略
//3.40
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int main()
{
char a[100];
char b[100];
cin>>a>>b;
char c[200];
strcpy(c,a);
strcat(c,b);
cout<<c<<endl;
}
//3.41
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int main()
{
int a[5]={1,2,3,4};
vector<int>ivec(begin(a),end(a));
for(auto :ivec)
cout<<i<<endl;
}
//3.42
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int main()
{
vector<int>ivec;
int i;
while(cin>>i)
{
ivec.push_back(i);
}
int *a=new int[ivec.size()];
for(auto it=ivec.begin();it!=ivec.end();++it)
{
*a++=*it;
}
for(auto i:ivec)
cout<<i<<endl;
}
//3.43
略。。会一种就行啦
//3.44
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int main()
{
int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
typedef int b[4];
for(b *p=a;p!=(a+3);++p)
{
for(int *q=*p;q!=*p+4;++q)
cout<<*q<<" ";
cout<<endl;
}
}
//3.45
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int main()
{
int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
for(auto*p=a;p!=(a+3);++p)
{
for(auto*q=*p;q!=*p+4;++q)
cout<<*q<<" ";
cout<<endl;
}
}