#include<iostream>
#include<string>
using namespace std;
int main()
{
string user_name;
cout<<"please enter your first name:";
cin>>user_name
cout<<'\n';
<<"hello,"
<<user_name;
<<"...and goodbye!\n";
return 0;
第二个程序
#include <string>
string user_name;
int usr_val; //用户的输入的值
int num_tries=0,num_right=0; //用户的回答次数以及答对的次数 也可以使用构造函数语法int num_trise(0)
double usr_score=0.0 //用户的评分
char usr_more;
cout<<”Try another sequence? Y/N?"
cin>>usr_more;
bool go_for_it=true;
const int max_tries=3;//定义为const的对象,在获得处置之后,就无法再有任何改动
const int line_size=8;
int cnt=1;
cout<<a_string
<<(cnt%line_size?' ':'\n');
//我们希望每行的数据不超过八个字符串。如果expr为true,就执行这里。如果expr为false的话,就执行这里
int tries=0;
cout<<"Are you ready for try#"
<<tries++<<"?\n";
bool usr_more=true;
char usr_rsp;
if(usr_rsp=='N'||usr_rsp=='n')
usr_more=false;
!(ival%2)//而不能写成!ival%2
(未完)
1.5 运用array和vector
定义array
const int_seq_size=18;
int pell_seq[seq_size];
定义vector
#include<vector>
vector<int> pell_seq(seq_size);
指定数列的前两个元素值
pell_seq[0]=1;
pell_seq[1]=2;
依次迭代vector和array中的多个元素
for(int ix=2;ix<seq_size;++ix)
pell_seq[ix]=pell_seq[ix-2]+2*pell_seq[ix-1];
把元素填充到array中
int elem_seq[seq_size]={
1,2,3,
3,4,7,
2,5,12,
3,6,10,
4,9,16,
5,12,22
};
vector不支持上面的初始化列表
vector<int> elem_seq(seq_size);
elem_seq[0]=1;
elem_seq[1]=2;
//....
elem_seq[17]=22;
或者是用array作为vector的初值
int elem_vals[seq_size]={
1,2,3,3,4,7,2,5,12,3,6,10,4,9,16,5,12,22};
vector<int> elem_seq(elem_vals,elem_vals+seq_size);
array和vector有差异,vector知道自己的大小是多少。所以迭代vector的时候有一些差异
cout<<"the first"<<elem_seq.size()
<<"elements of the pell Series:\n\t";
for(int ix=0;ix<elem_seq.size();++ix)
cout<<pell_seq[ix]<<' ';
用cur-tuple表示显示元素的索引值,再迭代的时候,累加3,让他能够索引到下一个数列的第一个元素
int cur_tuple=0;
while(next_seq==true&&cur_tuple<seq_size)
{
cout<<"the first two elements of the sequence are:"
<<elem_seq[cur_tuple]<<","
<<elem_seq[cur_tuple+1]
<<"\nwhat is the next element?";
if(usr_guess==elem_seq[cur_tuple+2])
if(usr_rsp=='N'||usr_rsp=='n')
next_seq=false;
else cur_tuple+=3;
使用数列的类别来指代数列
扫描二维码关注公众号,回复:
5347192 查看本文章
const int max_seq=6;
string seq_names[max_seq]={
"Fibonacci",
"Lucas",
"Pell',
”Triangular",
"Square",
"Pentagonal"
};
if(usr_guss==elem_seq[cur_tuple+2]}
{
++num_cor;
cout<<"Very good.Yes,"
<<elem_seq[cur_tuple+2]
<<’is the next element in the"
<<seq_names[cur_tuple/3]<<"sequence.\n";
}
1.6 指针带来的弹性
null指针
int *pi=0;
double *pd=0;
string *pd=0;
防止对null指针进行提领操作,检验指针所只有的地址是否为0
if(pi&&*pi!=1024)
*pi=1024
用pv指针来指向vector
vector<int> *pv=0;
pv=&fibonacci;
//...
pv=&lucas;
seq_addrs是一个array,但是元素类型为vector*
vrctor<int> *pv=0;
const int seq_cnt=6;
vector <int> *seq_addrs[seq_cnt]={
&fibonacci,&lucas,&pell,
&triangular,&square,&pentagonal
};
通过索引值来访问各个vector
vector<int> *current_vec=0;
for(int ix=0;ix<seq_cnt;++ix)
{
current_vec=seq_addrs[ix];
}
希望数列的出现顺序随机化
include<cstdlib>
srand(seq_cnt);
seq_index=rand()%seq_cnt;
current_vec=seq_addrs[seq_index];
检查Fibonacci vector的第二个元素是否为1
if(!Fibonacci.empty()&&(Fibonacci[1]==1))
用pv指针来达到相同的结果
if(pv&&!pv->empty()&&((*pv)[1]==1))