Ayuda con Ejercicio de vector! ;_;

Iniciado por Onigiri, 25 Octubre 2012, 03:13 AM

0 Miembros y 1 Visitante están viendo este tema.

Onigiri

Hola! (:
Pues debo hacer un ejercicio
en donde ingreso por teclado 20 elementos
de un vector numerico,
y luego mostrarlos en el orden inverso al
ingresado.

Es bastante sencillo, la resolucion pero no puedo pasarlo a C++ D:
no se en que me estoy equivocando u.u

Código (cpp) [Seleccionar]
#include <conio.h>
#include <iostream.h>
main()
{int a[20],i;
for(i=0; i<20; i++)
{cout<<"\nElemento a = ";
  cin>>a[i];
}

for(i=20; i<1; i--)
{cout<<"\n\nElemento a "<<i<<" = "<<a[i];}
getch();
}

rir3760

Lo primero que hay que cambiar son los nombres de los encabezados, la definición de la funcion "main" y evitar el uso de la biblioteca conio de Borland. Por favor lee el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

También deberías conseguir un libro o curso de calidad, puedes utilizar el motor de búsqueda para recomendaciones.

El problema es el bucle:
Código (cpp) [Seleccionar]
for(i=20; i<1; i--)
{cout<<"\n\nElemento a "<<i<<" = "<<a[i];}

Debería ser:
Código (cpp) [Seleccionar]
for (i = 19; i >= 0; i--)
   cout << "a[" << i << "] = " << a[i] << endl;


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

naderST

La condición del segundo for dice que se va a ejecutar mientras i sea menor que uno y el primer valor de i es veinte, es decir que nunca va a entrar al for. Además si entra al for te darás cuenta que i=20 se sale del arreglo ya que los arreglos en C/C++ van desde 0 a n-1 donde n es el tamaño del arreglo (n=20).

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

flony

#3
#include <iostream>
using namespace std;
int main()
{
int a[19],i;
   for(i=0; i<=19; i++)
   {cout<<"\nElemento a = ";
   cin>>a[i];
   }

for(i=19; i>=0; i--)
{cout<<"\n\nElemento a "<<i<<" = "<<a[i];}
system ("PAUSE");
return 0;
}

bueno errores los que te dijeron en los dos for habia errores de interpretacion, no usas using namespace std;
no uses conio
y no uses <iostream.h>
es sin el punto y la h
y es int main()
si un problema no tiene solucion entonces no es un problema...es algo inevitable

Onigiri

Ya me estuve leyendo el articulo,
y les agradezco mucho.
Si bien aun estoy aprendiendo
no creo que pueda dejar de usar el conio.h
y using namespace std asi como asi;
verán, el la facultad me dicen que "asi es como debe ser".
Y yo (al menos por ahora ya que ya empezaré con parciales)
quiero comprender mis errores tontos, y luego empezar a modificar mi
estructura en la escritura.

Yo utilizo el borland c++ 5.02 para programar
y utilize el codigo anterior pero me salia errores que yo aún no entiendo D:

Pero estudiaré >.< 

naderST

Está muy mal que les enseñen C++ y no empiecen por C. Con respecto a la librería NO ESTÁNDAR conio, no deberían ni mirarla, ya que como te dije no es estándar y hace que C/C++ pierda una de sus características principales que es la portabilidad.

0xDani

Cita de: naderST en 25 Octubre 2012, 03:57 AM
Está muy mal que les enseñen C++ y no empiecen por C. Con respecto a la librería NO ESTÁNDAR conio, no deberían ni mirarla, ya que como te dije no es estándar y hace que C/C++ pierda una de sus características principales que es la portabilidad.

Estoy de acuerdo con lo de conio, para hacer esas cosas no hace falta mas que la libreria estandar y si acaso algo de preprocesador, pero en cuanto a que haya que aprender C antes que C++ no. Probablemente es mas facil aprender con C primero, pero de ahi a que "este muy mal"...
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

naderST

Bueno cada quien tiene sus opiniones yo lo digo porque me parece mal que esté programando 100% estructurado y lo haga en C++ ya que no está explotado C++ estos programitas sencillos se pueden hacer fácilmente en C. A nivel de eficiencia no es lo mismo hacer un cout que un printf.