为什么我找不到集合论的正确输出?

时间:2017-04-08 04:21:32

标签: c++

enter image description here

我想使用数组或向量以及元素的成员资格来打印集合的基数。

我能够找到基数,但无法在同一个程序中找到会员资格。

这是我的代码..

#include<iostream>
#include<vector>
using namespace std;

int main(){

    vector<int> v;
    int ch;
    int j;

    for(int i=1; cin>>j; i++){
        v.push_back(j);
    }

    cout << v.size();

    cout << " enter element you want to find whether it is a memebr or not: ";
    cin >> ch;

    for(int i=0; i < v.size(); i++){
        if(v[i] == ch){
            cout << "element found";
            break;
        }
    }
    return 0;
}

2 个答案:

答案 0 :(得分:1)

看看你所做的是在运行期间在一个循环中接受一个输入,这也是在条件验证位置。为了终止这个你给了一个char。它会引发异常。所以你的程序没有按预期工作。不要那样做。总是要求大小,然后循环迭代很多次。以下是正在运行的代码:

#include<iostream>
#include<vector>
using namespace std;

int main(){

vector<int> v;
int ch;
int j,temp;
int size;
cin>>size;
for(int i=1; i<=size; i++){
    cin>>temp;
    v.push_back(temp);
}


cout << " enter element you want to find whether it is a memebr or not: ";
cin >> ch;



for(int i=0; i < v.size(); i++){
    if(v[i] == ch){
    cout << "element found";
    break;
    }

    }
cout<<v.size();

    return 0;

    }

希望这会对你有所帮助:)。

答案 1 :(得分:0)

试试这个:

#include <iostream>
using namespace std;
#include<vector>
#include<stdlib.h>


int main(){

vector<int> v;
int ch;
int j;

cout<<"Enter the size of set:"<<endl;
int n;
cin>>n;

for(int i=0; i<n ; i++){
    cin>>j;
    v.push_back(j);
}



cout << v.size()<<endl;

cout << " enter element you want to find whether it is a memebr or not: ";
cin >> ch;



for(int i=0; i < v.size(); i++){
    if(v[i] == ch){
    cout <<endl<< "element found";
    exit(0);
    }
    }
cout<<endl<<"Element not found.";

    return 0;

    }