C/C++ C++ Vectors: Finding Values in vectors

  • Thread starter Thread starter needOfHelpCMath
  • Start date Start date
  • Tags Tags
    C++ Vectors
AI Thread Summary
The discussion focuses on correcting a C++ program that aims to count the occurrences of a specific value in a vector. The original code incorrectly initializes the `numMatches` variable and adds values instead of counting matches. The correct approach involves initializing `numMatches` to zero and incrementing it when elements equal `matchValue`. Participants emphasize that understanding program requirements improves with practice, highlighting the rewarding yet challenging nature of coding. Overall, the thread provides valuable insights into proper vector manipulation in C++.
needOfHelpCMath
Messages
70
Reaction score
0
I would like some help or guide to if i am going on the right track on my program ***Set numMatches to the number of elements in userValues (having NUM_VALS elements) that equal matchValue. Ex: If matchValue = 2 and userValues = {2, 2, 1, 2}, then numMatches = 3. ***
Code:
#include <iostream>
#include <vector>
using namespace std;

int main() {
   const int NUM_VALS = 4;
   vector<int> userValues(NUM_VALS);
   int i = 0;
   int matchValue = 0;
   int numMatches = -99; // Assign numMatches with 0 before your for loop

   userValues.at(0) = 2;
   userValues.at(1) = 2;
   userValues.at(2) = 1;
   userValues.at(3) = 2;

   matchValue = 2;

   numMatches= userValues.at(0);
   for (i = 0; i < NUM_VALS; ++i) 
   {
     cin >> userValues.at(i);
   }
         
   for (i = 0; i < NUM_VALS; ++i) {
      numMatches = numMatches + userValues.at(i);
   }
   

   cout << "matchValue: " << matchValue << ", numMatches: " << numMatches << endl;

   return 0;
}

**MY TEST**

Testing matchValue = 2,
userValues = {2, 2, 1, 2}
Expected value: 3
Your value: 9
 
Technology news on Phys.org
You want something like:

Code:
numMatches= 0;
for (i = 0; i < NUM_VALS; i++) 
{
	if (userValues.at(i) == matchValue)
	{
		numMatches++;
	}
}

You see, in your code, you first assign the value of [m]userValues.at(0)[/m] to [m]numMatches[/m], which is 2, and then in your second for loop, you add each of the values in the array to [m]numMatches[/m], so you wind up with:

[m]numMatches = 2 + 2 + 2 + 1 + 2 = 9[/m]

As you can see in the code I wrote, we initialize [m]numMatches[/m] to zero before the loop, and then we check each element of the array to see if it is equal to [m]matchValue[/m], and if it is, then we increment [m]numMatches[/m], so that we get a count of the number of elements that match.

Does this make sense?
 
MarkFL said:
You want something like:

Code:
numMatches= 0;
for (i = 0; i < NUM_VALS; i++) 
{
	if (userValues.at(i) == matchValue)
	{
		numMatches++;
	}
}

You see, in your code, you first assign the value of [m]userValues.at(0)[/m] to [m]numMatches[/m], which is 2, and then in your second for loop, you add each of the values in the array to [m]numMatches[/m], so you wind up with:

[m]numMatches = 2 + 2 + 2 + 1 + 2 = 9[/m]

As you can see in the code I wrote, we initialize [m]numMatches[/m] to zero before the loop, and then we check each element of the array to see if it is equal to [m]matchValue[/m], and if it is, then we increment [m]numMatches[/m], so that we get a count of the number of elements that match.

Does this make sense?

Yes! it does! I am so horrible at understanding what the programs wants...any tips for me so that i can understand what the programs wants. Thank you it made a lot of sense!
 
Understanding the expected output, and how to get it generally comes with practice. Coding can be extremely rewarding, and it can be extremely frustrating at the same time. :)
 
Thread 'Star maps using Blender'
Blender just recently dropped a new version, 4.5(with 5.0 on the horizon), and within it was a new feature for which I immediately thought of a use for. The new feature was a .csv importer for Geometry nodes. Geometry nodes are a method of modelling that uses a node tree to create 3D models which offers more flexibility than straight modeling does. The .csv importer node allows you to bring in a .csv file and use the data in it to control aspects of your model. So for example, if you...
I tried a web search "the loss of programming ", and found an article saying that all aspects of writing, developing, and testing software programs will one day all be handled through artificial intelligence. One must wonder then, who is responsible. WHO is responsible for any problems, bugs, deficiencies, or whatever malfunctions which the programs make their users endure? Things may work wrong however the "wrong" happens. AI needs to fix the problems for the users. Any way to...

Similar threads

Back
Top