Autor
|
Tema: Duda con arrays C++ (Leído 1,389 veces)
|
aRaZer
Desconectado
Mensajes: 1
|
Hola muy buenas gente, quisiera saber si alguien me podría ayudar con una duda que tengo. Tengo que hacer un programa en el cual se introducirán un total de 31 datos en un arreglo y después el programa tendrá que imprimir el numero de datos que son diferentes al ultimo número ingresado al arreglo; Ejempo: en un arreglo se introducen 8 datos-> 1,1,2,2,3,4,2,1 = entonces en el programa me deberá imprimir el número 5 por qué son 5 números los que son diferentes al ultimo dato del arreglo.
Si alguien me pudiera apoyar diciéndome como es que puedo lograr el conteo de los números que no se repiten el arreglo se lo agradecería bastante, sin mas que decir gracias por su tiempo.
|
|
|
En línea
|
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
Con un contador de numeros diferentes al ultimo; Haces el recorrido y preguntas en cada vuelta si el numero actual es diferente al ultimo ingresado arreglo[ULTIMAPOSICION] y si es diferente incrementas el valor del contador +1; int cantidadNumeros(arreglo a) { int contador=0; for(int i=0;i<TAMAÑOARREGLO;i++) if(a[i]!=a[ULTIMAPOSICION]) contador++; return contador; }
|
|
« Última modificación: 23 Octubre 2018, 03:04 am por Beginner Web »
|
En línea
|
7w7
|
|
|
elgilun
Desconectado
Mensajes: 17
|
La función que necesitas ya existe en la biblioteca estándar, es count_if https://en.cppreference.com/w/cpp/algorithm/count#include <iostream> #include <vector> #include <algorithm>
auto diferentes(const std::vector<int>& arreglo, int ultimo) { // contar los números distintos a "ultimo" return std::count_if(arreglo.begin(), arreglo.end(), [&ultimo](auto i) { return i != ultimo; }); }
int main() { // ejemplo // en un arreglo se introducen 8 datos: std::vector<int> arreglo{1, 1, 2, 2, 3, 4, 2, 1};
std::cout << diferentes(arreglo, 1); }
|
|
« Última modificación: 24 Octubre 2018, 09:36 am por elgilun »
|
En línea
|
|
|
|
|
|