Foros del Web » Programación para mayores de 30 ;) » C/C++ »

validar ingreso de datos vector.2

Estas en el tema de validar ingreso de datos vector.2 en el foro de C/C++ en Foros del Web. hola tengo este codigo pero no hace lo que quiero.. se detiene entre las lines 44 y 55, que es donde quiero que almacene las ...
  #1 (permalink)  
Antiguo 15/04/2012, 10:52
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 12 años, 6 meses
Puntos: 5
validar ingreso de datos vector.2

hola tengo este codigo pero no hace lo que quiero.. se detiene entre las lines 44 y 55, que es donde quiero que almacene las posiciones, (del 1 al 10) en otro vector , asi despues busco que las posiciones ingresadas no se repitan , no tiene que ver con los valores ingresados en cada posiciones. ya que esos se pueden repetir.

como decia, este programa , almacena las pocisiones y los valores. de 10 posiciones. es de carga aleatoria. esta validado que las posiciones sean del 1 al 10...


bueno el tema principal es q las posiciones ingresadas, no se repitan.... como veran intente varias cosas, que estan comentadas en el codigo ...

saludos ."


Código PHP:
#include <stdio.h>
#include <conio.h>
main()
{


 
  
int v[10],pos,posi=0,i=1,sigue,flag,cr=9;
  
int norep[10];

    
 
 
/* Menu Ppal */

 
printf("Ejercicio de Vectores:\n\nDebe ingresar la posicion y el valor en la carga del vector \n\n");
 
    for(
i=0;i<10;i++)    
    {    
v[i]=0;
        
norep[i]=0;
    }
    
    
do
    {
        
printf("\n\nIngrese posicion: ");
        
scanf("%d",&posi);
        
pos=posi-1;
        
        
    
            while (
pos<0||pos>9)
                {
    
printf("\nUsted ingreso una posicion incorrecta. Vuelva a intentarlo ");
        
printf("\n\nIngrese posicion: ");
        
scanf("%d",&posi);
        
pos=posi-1;
    
                }
                
            
    
//     ESTO NO FUNCIONA    
            
    
while(pos!=777)
            {
                
            
//    norep[0]=5;
        // norep[i]=pos;
            
norep[i]=pos;        
            
i++;    
        
pos=777;
        
            }
        
    
//     ESTO NO FUNCIONA        
    
            
            
        
        
        
        /*        
                
        norep[in]=pos;
        in++;
        
        flag=0;
        
        for(i=0;i<10;i++)
    {
        if(pos==norep[i])
        {
            flag++;
        }
    }
                while (flag==2)
                {
    printf("\nUsted Ya ingreso esta posicion. Vuelva a intentarlo ");
        printf("\n\nIngrese posicion: ");
        scanf("%d",&posi);
        pos=posi-1;
    
                }
        
        */
        
        
        
        
        
        
        
        
    
        
printf("\nIngrese valor a cargar en el vector: ");
        
scanf("%d",&v[pos]);
        
fflushstdin );
        
printf("\nLe quedan por ingresar %d valores en el vector",cr);
        
printf("\n\nSi desea ingresar mas valores presione '99':");
        
scanf("%d",&sigue);
        
fflushstdin );
        
cr--;
    
    }while(
sigue==99);

    for(
i=0;i<10;i++)    
        
printf("-%d-",v[i]);
        
        
            for(
i=0;i<10;i++)    
        
printf("-%d-",norep[i]);
    
 
 
   
getch();
}
 
 
//------------------------------------------------------ 
  #2 (permalink)  
Antiguo 15/04/2012, 19:51
Avatar de cristian_qc  
Fecha de Ingreso: abril-2011
Mensajes: 43
Antigüedad: 11 años, 7 meses
Puntos: 8
Respuesta: validar ingreso de datos vector.2

Por qué abrís otro hilo ?
Yo te contesté en otro hilo que abriste con el mismo problema, por qué no pusiste esto mismo en el otro hilo ?
http://www.forosdelweb.com/f96/valid...ctores-987337/

Tu código es un desorden. Si alguien quiere ayudarte tiene que tomarse el trabajo de ordenarlo para entender lo que hacés mal.
Usás la librería conio sólo para usar la función getch();. Conio no existe en sistemas basados en linux, entonces yo tengo que revisar todo tu código y ver qué funciones de conio usaste para reemplazarlas por funciones estándar.
Main no retorna ningún valor. No tiene ningún tipo.
Código C:
Ver original
  1. int main(){
  2.      return 0;
  3. }

Si le mostrás esto a alguien que no haya visto el resto del código no va a entender para qué sirve cada variable, y se supone que las variables deben ser representativas.
Código C:
Ver original
  1. int v[10],pos,posi=0,i=1,sigue,flag,cr=9;
  2.   int norep[10];


Esto aunque no parezca, sí tiene importancia:
Código C:
Ver original
  1. printf("\n\nSi desea ingresar mas valores presione '99':");
Por qué el número '99' representa una respuesta afirmativa ? Sí le hacés esa pregunta a un usuario contestaría con "Si" o con "No", Por qué va a contestar con un número ?.

Esta podría ser la lógica del programa:
- Inicializar un vector en cero.
- En un ciclo de 10 vueltas pedir que se ingresen la posición del vector y el valor correspondiente
- Si la posición o el valor son incorrectos mostrar un mensaje.
- Si la posición indicada ya contiene un número diferente a cero ( o negativo, si querés incluir el cero como posibilidad ) entonces mostrar un mensaje.
- Si todo está bien ingresar el número en la posición indicada.
- Mostrar el vector.

Un ejemplo:
Código C:
Ver original
  1. for( int a = 0; a < 10; a++ ){
  2.      if(     Posición Correcta     &&     Numero Correcto     &&     Vector[ posicion ] != 0     ){
  3.           vector[ posicion ] = valor;
  4.      } else {
  5.           printf( "Valores incorrectos, reingrese.\n" );
  6.           a--;
  7.      }
  8. }

Última edición por cristian_qc; 15/04/2012 a las 19:57
  #3 (permalink)  
Antiguo 15/04/2012, 20:04
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: validar ingreso de datos vector.2

hola, entiendo que mi codigo es un desorden, pero mientras funcione...
tampoco es para una empresa...es practica....
de todos modos lenguaje c... lo tengo como segundo plano... para aprobar la materia.

ya pude hacer para que no se repitan las posiciones...ingresadas. copie los valores...a otro vector. y asi verifica... si ya estan ingresados...

bueno , gracias. seguire practicando sobre este lenguaje...
  #4 (permalink)  
Antiguo 15/04/2012, 20:06
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: validar ingreso de datos vector.2

eso de ingresar 99 es por que no me andaba. con los char... ahora lo pruebo... tampoco quiero estar un dia entero intentando q funcione con caracteres...
  #5 (permalink)  
Antiguo 15/04/2012, 20:33
Avatar de cristian_qc  
Fecha de Ingreso: abril-2011
Mensajes: 43
Antigüedad: 11 años, 7 meses
Puntos: 8
Respuesta: validar ingreso de datos vector.2

Cita:
hola, entiendo que mi codigo es un desorden, pero mientras funcione...
tampoco es para una empresa...es practica....
Sí, no lo tomes como una mala crítica. Mientras más ordenado esté tu código más fácil es que te ayuden. Y más rápido también.

Bueno, me alegro que lo hayas podido solucionar!, un saludo !

Etiquetas: funcion, ingreso, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:46.