首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮忙回答一下这几个小问题,多谢了

2012-03-15 
帮忙回答一下这几个问题,谢谢了。请大家帮我看看这3题。谢谢第一题:#include stdafx.h#include iostream

帮忙回答一下这几个问题,谢谢了。
请大家帮我看看这3题。谢谢
第一题:
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <limits>

using namespace std;
int main()
{
vector<int> a,b;
int c;
cout<<"请输入数字"<<endl;
while(cin>>c){
a.push_back(c);}
  cin.clear();
  cin.ignore( numeric_limits<streamsize>::max(), '\n' );

cout<<"请输入数字"<<endl;
while(cin>>c){
b.push_back(c);}
  cin.clear();
  cin.ignore( numeric_limits<streamsize>::max(), '\n' );
if(a.size()==b.size())
if(a.size()==0)
cout<<"相等"<<endl;
else {
vector<int>::iterator a1=a.begin();
  vector<int>::iterator b1=b.begin();
while(*a1==*b1&&a1!=a.end()&&b1!=b.end()){
++*a1;
++*b1;}
  if(a1==a.end())
{cout<<"相等"<<endl;}
}
else
cout<<"不相等"<<endl;
return 0;}

第二题:编译的时候虽然成功,但是输入6个数字后会弹出一个窗口。不知所云。
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;


int main()
{
//定义变量
vector<int> b;
  int a[6];
int i,c;
//输入一个vector对象;
cout<<"输入6个数字"<<endl;
for(vector<int>::size_type ix=0;ix!=6;ix++){
cin>>c;
a[ix]=c;}
//把这个vector对象的值传给一个数组;
for(int i=0;i!=6;i++)
{b[i]=a[i];

//输出这个数组
  cout<<b[i]<<endl;
}
return 0;
}


第三题:不知道哪里错了。
 #include "stdafx.h"
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;


int main(){
//定义变量

char a[8]="I love ";
char b[4]={'Y','o','u','\0'};
  char *p1=a;
char *p2=b;
//把两个c风格字符串连在一起;
int len=strlen(p1)+strlen(p2)+1;
char *p3=new char[len];
strcpy(p3,p1);
strcat(p3,p2);
//输出合并后的那个C风格字符串;
for(char *q=p3;q!=p3+len;q++){
cout<<*q<<endl;}
string s1="I love ";
string s2="You";
string s3=s1+s2;
cout<<s3<<endl;
return 0;
}





[解决办法]
第一题:建一个空的stdafx.h的空头文件
[解决办法]
第三题:+ << 运算符重载好像没写
[解决办法]
第二题:

你这里vector<int> b;
b还是个空的vector,是不能直接用下标访问的,其效果其实跟数组越界是一样的。

操作vector下标,你要记住一点:
vector下标只能用来获取已经存在的元素,通过下标给不存在的元素赋值,不会添加任何元素!

热点排行