[C con Clase] Ayuda con Vectores
Davidson, Steven
srd4121 en njit.edu
Jue Jun 13 19:29:43 CEST 2013
Hola Martín,
2013/6/13 Martín Melo Godínez <nitram-210397 en hotmail.com>
> Hola que tal quisiera ver si me podría ayudar en un problema de Vectores o
> Arreglos Undimensionales. Tengo un problema el cual me dice que almacene
> vector el numero de peso de n empleados. Como podrán ver el tamaño del
> vector será el numero que introduzca en el teclado, pero no se como
> declarar esa instrucción, Si alguien me podría corregir lo agradecería
> mucho:
>
>
Veamos el código fuente.
#include<iostream.h>
> #include<conio.h>
> #include<stdio.h>
>
Deberías usar los nombres estándares de C++ para los ficheros estándares de
cabecera, que en este caso son:
#include <iostream>
#include <cstdio>
Tendrás que usar el espacio de nombre 'std'. Lo más sencillo es escribir:
using namespace std;
Por cierto, <conio.h> no es estándar.
Ahora bien, es posible que estés usando un compilador antiguo y lo que te
acabo de decir no funcione en tu compilador.
#define tam ne
>
Esto no tiene mucho sentido. Puedes eliminar esta directiva.
void main()
>
El estándar de C++ dicta que 'main()' debe retornar un entero. Por
convenio, retornamos 0 (cero) para indicar una terminación correcta del
programa.
{
> int ne,x;
> int peso[ne];
>
Esto no es correcto. El valor para la cantidad máxima de elementos debe ser
constante.
Tienes dos opciones: o bien (1) indicas una cantidad máxima - y constante -
para el array pero usando una variable para representar la cantidad actual
de elementos, o bien (2) manejas memoria dinámicamente adjudicada para
crear un array dinámico.
cout<<"Cuantos empleados son: "<<endl;
> cin>>ne;
> for(x=1;x<=tam;x++)
>
Como usas 'x' como índice para el array, debes empezar por 0 (cero), y por
tanto el índice del último elemento será 1 menos de la cantidad actual de
elementos.
En este ejemplo, reescribimos la cabecera del bucle 'for' así,
for( x=0; x<ne; x++ )
{
> cout<<"Da el peso del empleado "<<x<<endl;
> cin>>peso[x];
> }
> for(x=1;x<=tam;x++)
>
Aquí, lo mismo; los índices siempre empiezan por cero.
{
> if(peso[x]<=80)
> {
> cout<<"El peso es menor o igual de 80 kg"<<endl;
> }
> else if(peso[x]>80)
>
No es un error, pero no tiene mucho sentido comprobar algo que sabemos que
es verdad. Si llegamos a la parte de 'else', entonces sabemos que la
condición de la primera sentencia, 'if', es falsa. Si algo no es ni menor
ni igual a 80, por lógica debe ser mayor a 80; no es necesario comprobar
este caso.
Simplemente, escribe 'else' y elimina esta segunda sentencia 'if'.
{
> cout<<"El peso del empleado "<<x<<" excede de 80 kg"<<endl;
> }
> }
> getch();
> }
>
>
Espero que esto te oriente.
Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130613/0e6615a1/attachment.html>
Más información sobre la lista de distribución Cconclase