我有一个特定大小的数组(例如100),它充满了用户输入。但是,用户可能不一定输入足够的数据来填充整个阵列。如何计算C++数组中的元素
我想统计用户输入的数组元素。我怎样才能做到这一点?
我试图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";
但这个代码给出了在这条线的错误:
另外,如果用户输入重复的元素,我只是想统计独特元素(每次计数一次)。
我的代码是:
#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)]
输入不是恒定的,它只是一个例子。
'S /如果(学生[I] = 1)/ IF(学生[I] == 1)/' - 也为的爱所有这些都不错,请启用编译器警告并注意它们(例如'gcc -Wall ...')。 –
如果您不知道用户将输入多少元素,请使用'std :: vector'。 – NathanOliver
首先,启用更多的编译器警告。然后按照[问]中的说明在所有调试问题中包含一个[mcve]和一个明确的问题陈述。最后:每个问题请提出一个问题。 –