Un communiter me pidio cierta ayuda con unas cosas de C++, pero según me expreso que por pena no quizo hacer la pregunta en este sub-foro.
Quisiera dejarles el problema y el codigo correspondiente, no soy muy buen programador de C++ y me gustaria que dieran sus opiniones sobre el código para que de esta forma tanto la persona que me pregunto como yo sepamos un poquito mas de este lenguaje.
Este es el problema de la tarea que les dejaron [literalmente de como me lo envío en el MP]:
Aplicar los elementos de la fase de resolución de un problema para cada ejercicio. Utilizar bucle For.
1. Calcular la suma de todos los elementos de un vector de dimensión 50, así como su media aritmética y su producto.
2. Calcular el número de elementos negativos, cero y positivos de un vector dado de 100 elementos.
3. Calcular el mayor de una lista L de n elementos.
4. Dada una lista L de n elementos, calcular la suma de los números pares y la de los impares de forma independiente.
5. Hacer diferentes listados de una lista de 15 números según el siguiente criterio:
Si número >=0 y <50, ponerlo en lista1
Si número >=50 y <100, ponerlo en lista2
Si número>=100 y <=150, ponerlo en lista3
Mi intento:
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
{
//Vlad @ Todosv.com para ######
//Tarea ITCA. Probado con Dev-C++ 4.9.9.2
//1.
vector<int> v1(50);
vector<int>::iterator iter;
unsigned long suma = 0;
srand( time(NULL) );
//cout << "Items:" << endl;
for(iter = v1.begin(); iter != v1.end(); iter++) {
*iter = rand();
//cout << *iter << endl;
suma += *iter;
}
cout << "suma: " << suma << endl;
//2. 3. y 4.
unsigned int numNegativos = 0;
unsigned int numPositivos = 0;
unsigned int numCeros = 0;
long sumaPares = 0;
long sumaImpares = 0;
v1.resize(100);
for(iter = v1.begin(); iter != v1.end(); iter++) {
*iter = rand()-rand();
//cout << *iter << endl;
if (*iter){
if(*iter>0){
numPositivos++;
}
else {
numNegativos++;
}
}
else {
numCeros++;
}
if(*iter%2) {
sumaPares += *iter;
}
else {
sumaImpares += *iter;
}
}
cout << "numNegativos: " << numNegativos << endl;
cout << "numPositivos: " << numPositivos << endl;
cout << "numCeros: " << numCeros << endl;
cout << "sumaPares: " << sumaPares << endl;
cout << "sumaImpares: " << sumaImpares << endl;
sort(v1.begin(),v1.end());
cout << "numMayor: " << v1.back() << endl;
//5.
v1.resize(15);
vector<int> lista1;
vector<int> lista2;
vector<int> lista3;
for(iter = v1.begin(); iter != v1.end(); iter++) {
*iter = rand() % 150;
//cout << *iter << endl;
if(*iter>=0 && *iter<50){lista1.push_back(*iter);}
if(*iter>=50 && *iter<100){lista2.push_back(*iter);}
if(*iter>=100 && *iter<=150){lista3.push_back(*iter);}
}
cout << "Lista 1." << endl;
for(iter = lista1.begin(); iter != lista1.end(); iter++) {
cout << *iter << endl;
}
cout << "Lista 2." << endl;
for(iter = lista2.begin(); iter != lista2.end(); iter++) {
cout << *iter << endl;
}
cout << "Lista 3." << endl;
for(iter = lista3.begin(); iter != lista3.end(); iter++) {
cout << *iter << endl;
}
system("PAUSE");
return 0;
}