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

arrays y for

Estas en el tema de arrays y for en el foro de C/C++ en Foros del Web. No entiendo para que te piden inicializar el arreglo al principio y despues le ingreses otros numeros, no tiene sentido. ¿no sera q tenes q ...

  #31 (permalink)  
Antiguo 07/04/2012, 12:54
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: arrays y for

No entiendo para que te piden inicializar el arreglo al principio y despues le ingreses otros numeros, no tiene sentido. ¿no sera q tenes q trabajar con esos numeros en vez de pedir por consola?

No es que te quieran hacer perder sino que te esta mostrando lo basico de C, son las formas de inicializar un arreglo

Saludos

PD: como ya he dicho con un for o while tambien funciona para poder continuar
  #32 (permalink)  
Antiguo 08/04/2012, 06:14
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

si quieren q lo ponga de las dos manera, y siempre escrito por teclado
  #33 (permalink)  
Antiguo 10/04/2012, 06:52
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

podeis ayudarme en decirme en donde tengo el fallo, es que no se verlo antes me funcionaba bien, pero ahora me da fallo

Código:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
int main()
{
system("color 0B");
int x[6];
int suma=0;
int mayor,i;
int multiplicar=1;
int resultado= 0;
char salir;

 for(;;)

printf("\n\t\t*** SUMA DE LOS 6 NUMEROS ***\n");
 
for(i=0; i<6; i++)
{
        printf("\nIntroduzca el numero %i y luego pulse intro:\t",i+1);
        scanf("%i",&x[i]);
        suma+=x[i];
        multiplicar*=x[i];
}
printf ("\n Suma= %i",suma);
 
 
 
printf("\n\t\t***  EL NUMERO MAYOR  ***\n");
mayor=x[0];
 
for (i=1 ; i<6 ; i++)
{
    if ( x[i]>mayor)
    {
    mayor=x[i];
    }
}
 
printf("\n El Mayor es: %d",mayor);
 
 
printf("\n\t\t***  LOS MULTIPLOS DE ELLOS  ***\n");
 
    for(i=0;i<6;i++)
    {
    if (x[i] % 2 == 0 ) printf("%d es multiplo de 2\n",x[i]);
    if (x[i] % 3 == 0 ) printf("%d es multiplo de 3\n",x[i]);
    if (x[i] % 5 == 0 ) printf("%d es multiplo de 5\n",x[i]);
    }
 
 
printf("\n\t\t***  MULTIPLICA LOS NUMEROS ***\n");
for(i=0; i<6; i++)
 
{
printf ("\n Resultado de Multiplicar= %i\n",multiplicar);
}     
 
printf("\n\t\t***  LA RAIZ CUADRADA DE LA SUMA ***\n");
 
{
     
printf(" \n La raiz de la suma es %f\n" , sqrt( (float) suma ));
 
}
 
 
printf("\n\t\t***  QUE DESEAS HACER?? S/N***\t");
            scanf("%s", &salir);
            if(salir == 'S' | salir == 's'){
 
system("cls())");
system("pause");
 
 
return 0;

}
  #34 (permalink)  
Antiguo 10/04/2012, 07:08
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: arrays y for

Para empezar tenes esta dos lineas:

for(;;)
printf("\n\t\t*** SUMA DE LOS 6 NUMEROS ***\n");

Esto va hacer que se imprima en pantalla infinitamente esa cadena...
Un for de esa for genera un ciclo infinito. No se para uqe lo pusiste...

Por otro lado tienes muchos lios de llaves y demas.... realmente estas entendiendo bien lo que haces??

Fiajte por ejemplo esta linea:

scanf("%s", &salir);
if(salir == 'S' | salir == 's'){

Abres un if pero nunca lo cierrras....cada llave que abre se tiene que corresponder con una llave que cierre.

Por lo general las llaves se usan cuando se abre un if, un for o un while...no en otro momento. Veo que estas poniendo llave por cualquier lado y creo que eso te esta mareando.....


Por otro lado supongo que el primer for lo quieres usar para repetir todo el codigo de nuevo.... yo usaria un do {} while(); y la condicion del while seria la que tienes en el if al final de todo...

if(salir == 'S' | salir == 's'){

Pero asi: (salir == 'S' || salir == 's')

te recomiendo que pruebes este tema de los ciclos con algun programa muchisimo mas corto para que puedes entender bien como funciona y ver el tema de las llaves y los bloques.

Saludos
  #35 (permalink)  
Antiguo 10/04/2012, 07:39
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

muchass gracias por tu informacion, simplemente quise poner o mejor dicho cambiar el codigo por una forma de hacerlo como dijo el que nos enseña, de ahi que me parecia raro y me funcionaba mal, y como estoy empezando pues no lo entendia, me ayuda mucho lo que me explicais, segun dijo el que nos enseña, al no haber dado el tema de do-while, nos dijo q lo hicieramos con el for(;;) para que asi pudieramos repetir la operacion en caso de que se quiera, y ahi salio otra vez mi problema de no saber como hacerlo y me daba esos fallos que os comente.

saludos y graciasss por vuestra ayuda
  #36 (permalink)  
Antiguo 10/04/2012, 07:44
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: arrays y for

Podes poner la condicion dentro del for...para que frene:

Código C:
Ver original
  1. for( salir = 'n' ; salir != 'S' && salir != 's'   ;) {
  2.  
  3. // RESTO DEL CODIGO
  4.  
  5.  
  6. printf("\n\t\t***  QUE DESEAS HACER?? S/N***\t");
  7. scanf("%s", &salir);
  8.  
  9. }
  #37 (permalink)  
Antiguo 10/04/2012, 09:43
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

ese for que me dices q debo ponerlo debajo los int?
  #38 (permalink)  
Antiguo 10/04/2012, 13:14
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

este lo hice con algun arreglo

Código:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
int main()
{
system("color 0B");
char seguir;
int x[6];
int suma=0;
int multiplicar=1;
int mayor,i;
int resultado= 0;

for(;;)
{

printf("\n\t\t*** SUMA DE LOS 6 NUMEROS ***\n");

for(i=0; i<6; i++)
{
        printf("\nIntroduzca el numero entero y luego pulse intro:\t",i+1);
        scanf("%i",&x[i]);
        suma+=x[i];
        multiplicar*=x[i];
}
printf ("\n Suma= %i",suma);
 
 
printf("\n\t\t***  EL NUMERO MAYOR  ***\n");
mayor=x[0];
 
for (i=1 ; i<6 ; i++)
{
    if ( x[i]>mayor)
    {
    mayor=x[i];
    }
}
 
printf("\n El Mayor es: %d",mayor);
 
 
printf("\n\t\t***  LOS MULTIPLOS DE ELLOS  ***\n");
 
    for(i=0;i<6;i++)
    {
    if (x[i] % 2 == 0 ) printf("%d es multiplo de 2\n",x[i]);
    if (x[i] % 3 == 0 ) printf("%d es multiplo de 3\n",x[i]);
    if (x[i] % 5 == 0 ) printf("%d es multiplo de 5\n",x[i]);
    }
 
 
printf("\n\t\t***  MULTIPLICA LOS NUMEROS ***\n");

 
printf ("\n Resultado de Multiplicar= %i\n",multiplicar);
     
 
printf("\n\t\t***  LA RAIZ CUADRADA DE LA SUMA ***\n");
 

     
printf(" \n La raiz de la suma es %f\n" , sqrt( (float) suma ));
 


 
printf("\n Si desea otra vez pulse S/s y luego intro\n");
          scanf("%c",&seguir);
          fflush(stdin);
          if(seguir == 'S' || seguir == 's') system("cls");
          else break;
}
printf("\n\n");
system("pause");
return 0;    
}

Última edición por alejandromi; 10/04/2012 a las 14:36
  #39 (permalink)  
Antiguo 11/04/2012, 04:39
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

por fin creo que termine mi codigo sin mas errores y funcionando bien:

Código:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
int main()
{
system("color 0B");

int x[6];
int suma=0;
int multiplicar=1;
int mayor,i;
int resultado= 0;
char salir;


    for(;;)
{

printf("\n\t\t*** SUMA DE LOS 6 NUMEROS ***\n");


for(i=0; i<6; i++)

{
        printf("introduce el numero %i y luego pulsa intro ",i+1);
        scanf("%i",&x[i]);
        suma+=x[i];
        multiplicar*=x[i];
}
printf ("\n Suma = %i",suma);



printf("\n\t\t***  EL NUMERO MAYOR  ***\n");
mayor=x[0];
 
for (i=1 ; i<6 ; i++)
{
    if ( x[i]>mayor)
    {
    mayor=x[i];
    }
}
 
printf("\n El Mayor es: %d",mayor);

 
printf("\n\t\t***  LOS MULTIPLOS DE ELLOS   ***\n");

    for(i=0;i<6;i++) 
    {
    if (x[i] % 2 == 0 ) printf("%d es multiplo de 2\n",x[i]);
    if (x[i] % 3 == 0 ) printf("%d es multiplo de 3\n",x[i]);
    if (x[i] % 5 == 0 ) printf("%d es multiplo de 5\n",x[i]);
    } 


printf("\n\t\t***  MULTIPLICA LOS NUMEROS ***\n");
 


printf ("\n Resultado de Multiplicar = %i\n",multiplicar);
      

printf("\n\t\t***  LA RAIZ CUADRADA DE LA SUMA ***\n");


      
printf(" \n La raiz de la suma es = %f\n" , sqrt( (float) suma ));



 printf("\n¿Deseas salir? S/N ");
       scanf("%s", &salir);
       if(salir == 'S' | salir == 's'){
          return 0;
       }
    system("CLS");
       
       
}    

return 0;
}

daros las mil gracias por que me habeis ayudado muchisiimooo, graciass

saludos
  #40 (permalink)  
Antiguo 11/04/2012, 09:49
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: arrays y for

mmm no se si eso deberia compilar ya que en scanf("%s", &salir); estas queriendo guardar en formato %s debe ser %c. El anterior lo vi y creo q andaba bien, xq lo cambiaste?? cual era el problema??
Ademas este no me gusta ya que pones un return dentro del if, lo cual se ve medio feo pero no significa q este mal

Saludos
  #41 (permalink)  
Antiguo 11/04/2012, 10:07
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

en el otro al ejecutarlo, la opcion salir no funcionaba bien ( se marchaba la pantalla) y en esto nuevo que puse, ahi todo funciona bien al copilar y cuando le das opcion salir o seguir, lo hace correcto y bien.

no te sale bien a ti?

gracias y saludos
  #42 (permalink)  
Antiguo 11/04/2012, 10:20
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: arrays y for

No lo compile, solo lo mire y me parecia q estaba bien. Ahora que miro bien el ultimo que subiste es verdad que anda pero eso no significa que este bien. El formato %s es para entradas de cadenas no para un caracter. Lo que estas haciendo es ingresar la cadena "s" (toda cadena termina en '\0'), el caracter 's' se guarda en la variable salir pero el caracter '\0' "se pierde" y por eso "funciona"

Si al anterior programa(no el ultimo) le agregas esto:
while(getchar()!='\n');
antees del scanf deberia andar

Saludos
  #43 (permalink)  
Antiguo 11/04/2012, 10:57
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: arrays y for

En verdad no se pierde ese caracter...es almacenado en la memoria contigua al "caracter c" Parece que en este caso no te influye en nada. Pero podria estar modificando otra variable sin que te des cuenta.

Yo he tenido de esos problemas en otro programas...y la verdad que cuando ocurren te queres matar porque son complicados de averiguar..

Saludos
  #44 (permalink)  
Antiguo 11/04/2012, 11:15
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: arrays y for

SI es verdad q no se pierde, por eso lo puse entre "comillas" xD, enrealidad pasa lo que dice sam90. Solo que como recien esta empezando me parecia mas conveniente decir "se pierde"

Saludos
  #45 (permalink)  
Antiguo 11/04/2012, 12:09
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

os agradezco infinida todo lo que me estais enseñando y la ayuda que me prestais, de verdad que sin vuestra ayuda no creo que lo hubiera tirado para delante, de verdad os lo agradezco mucho.

el problema es que los temas q nos ponen son muy poco explicativos y nos dicen que vayamos investigando y probando, y de verdad para una persona que tenga un poco de nocion de programacion pues muchas cosas le son familiares y tiene mas manejo de ellas, pero yo que acabo de empezar que jamass lei nada de nada, pues hay cosas que se me van de las manos supongo hasta q lleve muchos mas avanzado el curso, de ahi mi agradecimiento hacia ustedes.

pd: tambien queria deciros que aunque tengo el nick que parece de chico soy chica.

muchass gracias por vuestro tiempo y ayuda

saludos y ahora esperar al proximo tema, a ver que tal se me da y que ponen.
  #46 (permalink)  
Antiguo 11/04/2012, 12:27
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: arrays y for

jajaa menos mal q lo aclaraste, yo te trataba como chico xDDD.

Saludos
  #47 (permalink)  
Antiguo 11/04/2012, 12:31
 
Fecha de Ingreso: marzo-2012
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: arrays y for

no pasa nadaaa ;)

saludos

Etiquetas: arrays, 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 07:14.