繁体   English   中英

如何在c ++中计算数组的元素

[英]How to count elements of array in c++

我有一个特定大小的数组(例如 100),其中填充了用户输入。 但是,用户可能不必输入足够的数据来填充整个数组。

我想计算用户输入的数组元素。 我怎样才能做到这一点?

我试过这个 for 循环:

int COUNT=0;
for( int i=0; i<size; i++)
    if (Student[i]=1) //which means this element is true, not empty element.
        COUNT++;
cout<< COUNT+1 << "\n";

但是这段代码在这一行给出了一个错误:

if (Students[i]==1)

另外,如果用户输入重复的元素,我只想计算唯一的元素(对每个值计算一次)。

我的代码是:

#include <iostream>
#include <string>
#include <sstream>
#include <math.h>
#define size 100
using namespace std;
int main()
{
    string Students_;
    string word2;

    getline(cin, Students_);
    int k;
    int l;
    k = Students_.find("[");
    Students_.erase(0, k + 1);
    l = Students_.find("]");
    string line2 = Students_.erase(l);
    stringstream iss(line2);
    string Students[size];
    int counter = 0;
    while (getline(iss, word2, ';') && counter < size) {
        Students[counter++] = word2;
    }

    int COUNT = 0;
    for (int i = 0; i < size; i++)
        if (Students[i] == 1)
            COUNT++;
    cout << COUNT + 1 << "\n";
    return 0;
}

例如输入是:

Students=[8347,Islam Said,(ARC135,ARC114,ARC134,ARC135);8256,Esraa Said,(ARC134,ARC135,ARC114);8336,Ismail Said,(ARC134,ARC135,ARC114);8285,Ismail Adballah,(ARC114,ARC135,ARC134,ARC114);8349,Esraa Kassem,(ARC135,ARC114,ARC134);8505,Bassant Kassem,(ARC114,ARC135,ARC134,ARC114);8381,Ismail Kassem,(ARC135,ARC134,ARC114,ARC135);8360,Bassant AbdAlrahman,(ARC114);8498,Mohamed Kamal,(ARC135,ARC114,ARC134);8255,Ali Bassem,(ARC114,ARC135);8437,Mohamed Said,(ARC135);8524,Osama Adballah,(ARC114,ARC135);8334,Osama Kamal,(ARC114,ARC135,ARC134);8501,Esraa Tarek,(ARC135,ARC134);8394,Ahmed Zain,(ARC134,ARC135)]

输入不是恒定的,这只是一个例子。

试试sizeof(array)/sizeof(array[0])

在 C++ 中总是使用std::vector 有几个内置功能和扩展功能。

std::vector有一个方法size() ,它返回向量中元素的数量。

(是的,这是半开玩笑的回答)

if语句中,您正在分配一个值而不是检查它。

尝试

if (Student[i] == 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM