Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Bl4ck3lf en 20 Diciembre 2012, 16:11 pm



Título: Duda sobre utilización de variables
Publicado por: Bl4ck3lf en 20 Diciembre 2012, 16:11 pm
Hola, espero no ser redundante en la pregunta ya que he buscado por el foro y por google para no molestar a nadie pero no he obtenido respuesta.

El punto es que la duda es una chorrada, no obstante no consigo solucionarla. Lo que quiero es usar una variable declarada en medio de un for. Para que me entendáis:

Código
  1. #include <stdio.h>
  2.  
  3. main(){
  4.       int num1, num2, num3, num4, num5;
  5.       int i=0;
  6.       for(i=0;i<6;i++){
  7.       printf("\nValor %d:",i);
  8.       scanf("%d", num[i]);
  9.       num[i]=getch();
  10.       getch();
  11.       printf("Valores: %d", num[i]);                
  12.       }    
  13. }
  14.  
Lo que quiero es no tener que ir guardando en las variables una por una, sino que num vaya tomando valor 1,2,3...etc. Espero me hayáis entendido, gracias y disculpad la chorrada!


Título: Re: Duda sobre utilización de variables
Publicado por: Danyfirex en 20 Diciembre 2012, 16:35 pm
te recomiendo que lo hagas con array algo así.


Código
  1. #include <stdio.h>
  2.  
  3.  
  4. int main ()
  5. {
  6.   int value [10],i; // declarar array
  7.   for (i = 0; i<10; i++)
  8.    {
  9.       value [i] = i; // cargamos el array
  10.    }
  11.   for (i = 0; i<10; i++)
  12.    {
  13.       printf ("\n%d",value [i]); // mostramos el array
  14.    }
  15.    getch();
  16.   return 0;
  17.  
  18. }
  19.  

saludos


Título: Re: Duda sobre utilización de variables
Publicado por: leosansan en 20 Diciembre 2012, 16:44 pm

Lo que quiero es no tener que ir guardando en las variables una por una, sino que num vaya tomando valor 1,2,3...etc.
Código
  1. #include <stdio.h>
  2.  
  3. main(){
  4.  int num[5]={0};
  5.  int i=0;
  6.  for(i=0;i<5;i++){
  7.    printf("\nValor %d:",i+1);
  8.    num[i]=i+1;
  9.    printf("Valores: %d", num[i]);
  10.  }
  11. }
  12.  
Saluditos!.


Título: Re: Duda sobre utilización de variables
Publicado por: Bl4ck3lf en 20 Diciembre 2012, 16:47 pm
Amigo gracias por la pronta respuesta pero creo que no has comprendido la pregunta, igual soy yo el que se ha expresado mal.
Código
  1. scanf("%d",&num ?? );

Como hago para que después de &num lea el valor también de i, de tal manera que la salida sea: num1, num2, num3, num4, num5.

En shell script sería asi:
Código
  1. for I in `seq 1 5`#Creo una secuencia de 1 a 5
  2. echo "Valor: "#Le pido al usuario un valor
  3. read num$I#guardo el valor en la variable num+1(el cual se incrementa cada vuelta del for)
  4. done

Con lo que guardaría el valor que me pasen por teclado en num1, num2...etc. Un saludo y gracias!


Título: Re: Duda sobre utilización de variables
Publicado por: SokarTefnut en 20 Diciembre 2012, 16:50 pm
Con el programa ejemplo te dará error,ya que intentas usar
Citar
num
(en la linea 11), sin haber declarado el array.

Yo cambiaría la linea 4 por int num[5]; para declaralo y no modificar nada mas del programa.




 


Título: Re: Duda sobre utilización de variables
Publicado por: Bl4ck3lf en 20 Diciembre 2012, 16:54 pm
Chicos gracias por las respuestas, releyendo mi pregunta he visto que he sido yo el que se ha expresado mal.

Este es el ejercicio:

Escribir un programa que lea 5 números y encuentre el promedio, el máximo y el mínimo de esos valores.

Es simple de hacer, lo se, lo que quiero aprender a hacer es con un for pedirle al usuario los 5 números y que los guarde en su respectiva variable para poder trabajar después con ellas, no ir preguntando y guardando una por una, que es mas código, menos profesional y mas engorroso.


Título: Re: Duda sobre utilización de variables
Publicado por: rir3760 en 20 Diciembre 2012, 17:13 pm
lo que quiero aprender a hacer es con un for pedirle al usuario los 5 números y que los guarde en su respectiva variable para poder trabajar después con ellas, no ir preguntando y guardando una por una, que es mas código, menos profesional y mas engorroso.
En C no puedes generar el nombre de una variable en tiempo de ejecución (como muestras en el script con num + 1 ==> num1, num + 2 ==> num2, etc.).

En su lugar y como ya te comentaron debes utilizar un array, en cada iteracion del bucle utilizas "num[ i ]" para indicar el objeto con indice "i" en el array "num".

Un saludo


Título: Re: Duda sobre utilización de variables
Publicado por: twins en 20 Diciembre 2012, 17:43 pm
Coma ya te han comentado en c se deben declarar todas las variables antes de utilizarlas por lo tanto si queieres guardar 5 valores por separado debes de declarar 5 variables, por suerte en c existen los arrays o vectores que simplifican este tema y para acceder a un valor solo debes de conocer su posicion, saludos y asi es como queda el codigo  :)
Código
  1. #include<stdio.h>
  2. int main(void){
  3. int i,vector[5],mayor,menor;
  4. float promedio=0;
  5. for(i=0;i<5;i++){//llena el vector
  6. printf("ingrese valor\n");
  7. scanf("%i",&vector[i]);
  8. }
  9. for(i=0;i<5;i++)//imprime el vector
  10. printf("[%i]",vector[i]);
  11. puts("\n");
  12. mayor=vector[0];
  13. menor=vector[0];
  14. for(i=0;i<5;i++){
  15. promedio+=vector[i];
  16. if(vector[i]>mayor)//busca el elemento mayor
  17. mayor=vector[i];
  18. if(vector[i]<menor)//busca el elemento menor
  19. menor=vector[i];
  20. }
  21. printf("el mayor es %i\n",mayor);
  22. printf("el menor es %i\n",menor);
  23. printf("el promedio es %.2f\n",promedio/5);
  24.        getchar();
  25. return(0);
  26. }
  27.  


Título: Re: Duda sobre utilización de variables
Publicado por: Danyfirex en 20 Diciembre 2012, 17:45 pm
Coma ya te han comentado en c se deben declarar todas las variables antes de utilizarlas por lo tanto si queieres guardar 5 valores por separado debes de declarar 5 variables, por suerte en c existen los arrays o vectores que simplifican este tema y para acceder a un valor solo debes de conocer su posicion, saludos y asi es como queda el codigo  :)
Código
  1. #include<stdio.h>
  2. int main(void){
  3. int i,vector[5],mayor,menor;
  4. float promedio=0;
  5. for(i=0;i<5;i++){//llena el vector
  6. printf("ingrese valor\n");
  7. scanf("%i",&vector[i]);
  8. }
  9. for(i=0;i<5;i++)//imprime el vector
  10. printf("[%i]",vector[i]);
  11. puts("\n");
  12. mayor=vector[0];
  13. menor=vector[0];
  14. for(i=0;i<5;i++){
  15. promedio+=vector[i];
  16. if(vector[i]>mayor)//busca el elemento mayor
  17. mayor=vector[i];
  18. if(vector[i]<menor)//busca el elemento menor
  19. menor=vector[i];
  20. }
  21. printf("el mayor es %i\n",mayor);
  22. printf("el menor es %i\n",menor);
  23. printf("el promedio es %.2f\n",promedio/5);
  24. return(0);
  25. }
  26.  

Te me adelantaste :S.

por cierto creo que declararte 6 valores en tu array. saludos


Título: Re: Duda sobre utilización de variables
Publicado por: twins en 20 Diciembre 2012, 17:53 pm
No es posible todo esta comprobado  ;) talvez lo dices por esto for(i=0;i<5;i++) pues el 5<5 eso es falso por lo tanto no tomara el valor 5.


Título: Re: Duda sobre utilización de variables
Publicado por: Danyfirex en 20 Diciembre 2012, 17:55 pm
No es posible todo esta comprobado  ;) talvez lo dices por esto for(i=0;i<5;i++) pues el 5<5 eso es falso por lo tanto no tomara el valor 5.



edito:

sorry me equivoque jajaja esta bien.

saludos


Título: Re: Duda sobre utilización de variables
Publicado por: twins en 20 Diciembre 2012, 18:12 pm
ajajaja no problem todo ok  ;D


Título: Re: Duda sobre utilización de variables
Publicado por: Bl4ck3lf en 20 Diciembre 2012, 19:45 pm
Muchas gracias tíos, me habéis resuelto la duda perfectamente.
Hasta la próxima chorrada!  :laugh: