Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Noviembre 23, 2008, 06:41:43
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Ayuda en codigo 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Ayuda en codigo  (Leído 122 veces)
ѕнeepмх™
Recien Llegado
*
Desconectado Desconectado

Mensajes: 4


warez υѕer™


Ver Perfil
« en: Agosto 29, 2007, 12:37:35 »

K tal a toda la comunidad y a todos los programadores en esta area keria ver si m pudieran ayudar con un codigo en C ya que estoy aprendiendo este lenguaje.

El programa es el siguiente:   

Leer 10 números enteros, almacenarlos en un vector y determinar en qué posiciones se
encuentran los números terminados en 4.

El Codigo q he desarrollado es el siguiente:   

Código:
#include<iostream.h>
void main(){
   int num[1],acu=0,a=0,ult=0,cuat[10],aux=0;

   for (a=1;a<=5;a++){
   cout<<"Ingrese El Numero; ";
   cin>>num[acu];
      ult=num[acu]-(num[acu]/10*10);
      if (ult==4){
         cuat[aux]=a;}
   }
   cout<<"Los Terminados En 4 estan En las Siguientes Posiciones:";
   cout<<cuat[aux]<<"\n";
   cout<<"\n";
}
El problema es el siguiente:  Con este codigo solo puedo lograr que me acumule una posicion del numero terminado en 4.
De manera que cuando se introducen varios numeros q terminan en 4, solo almacena la ultima posicion del contador for........
Necesito que almacene todas las posiciones en las q hayan numeros terminados en 4 y posteriormente las imprima.

de antemano muy agradecido

salu2  Grin
« Última modificación: Agosto 29, 2007, 12:40:54 por yoυтυвe υѕer™ » En línea
FreakMind
Habitual
*****
Desconectado Desconectado

Mensajes: 190



Ver Perfil
« Respuesta #1 en: Agosto 29, 2007, 05:08:07 »

Buenas

Primeramente, ese codigo es de C++ Tongue pero bueno no viene al caso. Bueno, voy a dejarte 2 codigos. Uno en el que no se guardaran las posiciones donde se encuentren los numeros terminados en 4 y otro en que si. Espero que te sirva

PD: Te muestra solo 1 posicion porque no actualizas la variable aux

Salu2, FreakMind

Código:
#include <stdio.h>

#define N       10

int main(void)
{
    int             numeros[N];
    int             i = 0;

    for(; i < N ; ++i){
        printf("Ingrese el numero: ");
        scanf("%d", numeros + i);
        getchar();
    }

    printf("Los numeros terminados en 4 estan en la posiciones: ");
    for( i = 0; i < N; ++i)
        if(numero[i] % 10 == 4)
            printf("[%d] ", i);

    getchar();
    return 0;
}


Código:
#include <stdio.h>

#define N       10

int main(void)
{
    int       numeros[N], flags[N] = {0};
    int       i = 0;

    for(; i < N ; ++i){
        printf("Ingrese el numero: ");
        scanf("%d", numeros + i);
        if(numero[i] % 10 == 4)
            flags[i] = 1;
        getchar();
    }

    printf("Los numeros terminados en 4 estan en la posiciones: ");
    for( i = 0; i < N; ++i)
        if(flags[i])
            printf("[%d] ", numeros[i]);

    getchar();
    return 0;
}


« Última modificación: Agosto 29, 2007, 06:59:37 por FreakMind » En línea

Connoisseurs of C semantics find C++ inferior to ++C

DarkIker
Habitual
*****
Desconectado Desconectado

Mensajes: 269


Colombia Underground Team

dark_iker_reign@hotmail.com
Ver Perfil WWW Email
« Respuesta #2 en: Agosto 29, 2007, 05:30:01 »

Te saldria mejor usar otra variable aparte de "i" y aumentar para tener el numero exacto de coincidencias con numeros terminados en 4 freakmind no te parece ?

Código:
#include <stdio.h>

#define N       10

int main(void)
{
    int       numeros[N], flags[N] = {0};
    int       i = 0, ac = 0;

    for(; i < N ; ++i){
        printf("Ingrese el numero: ");
        scanf("%d", numeros + i);
        if(numero[i] % 10 == 4)
            flags[++ac] = i;
        getchar();
    }

    printf("Los numeros terminados en 4 son y estan en la posiciones: ");
    for( i = 0; i < ac; ++i)
            printf("Num %d - Pos %d\n ",numero[flags[i]], flags[i]);

    getchar();
    return 0;
}

no lo e probado pero debe de funcionar. Salu2.

Att: DarkIker
En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion --> Colombia Underground Team

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion --> My Blog
FreakMind
Habitual
*****
Desconectado Desconectado

Mensajes: 190



Ver Perfil
« Respuesta #3 en: Agosto 29, 2007, 08:14:06 »

Buenas

  Si es correcto. Aunque si vamos a ser tan estrictos flags deberia ser un puntero en vez de un array estatico ya que es muy probable que la cantidad de numeros terminados en 4 sea < que N, por lo que un array estatico desperdiciaria memoria.
   Alguno seguro me va a decir que existe una sobrecarga al momento de pedir memoria, pero creo que es insignificante (mas pensando que N puede ser un numero muy grande si se quiere)


Salu2, FreakMind
En línea

Connoisseurs of C semantics find C++ inferior to ++C

lann
Habitual
*****
Desconectado Desconectado

Mensajes: 322


maamamma

migue1990@gmail.com
Ver Perfil Email
« Respuesta #4 en: ſeptiembre 01, 2007, 04:52:35 »

hmmmmm...  pues aver no tengo computadora ( problema con la elecricidad, no la usen mientras hay una tormenta =pm es la 2da computadora que se me descompone ) asi que si e perdido practica es por eso ya llevo una semana sin computadora y no se cuando me la rergesen

bueno

Código:
#include <iostream>

int main()
{
int array[ 10 ];
for( int i = 0; i < 10; i++ )
cin >> array[ i ];

for( int i = 0; i < 10; i++ )
{
   if( array[ i ] % 10 == 4 )
   cout << i << endl;
}
}

pues creo que funcionaria bien
« Última modificación: ſeptiembre 01, 2007, 04:58:33 por lann » En línea

am
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Ayuda en codigo « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC