• Viernes 8 de Noviembre de 2024, 16:59

Autor Tema:  Problema de novato  (Leído 4140 veces)

tkc009

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Problema de novato
« en: Sábado 23 de Enero de 2010, 04:58 »
0
Hola a todas las gente de la comunidad "solocodigo" antes que nada para aclarar soy exageradamente novato  :D  y hace unos dias empeze programar en c/c++ va en realidad 2 o 3 xD, cambiando de tema, quise hacer un programa del cual se ingresen dos valores y luego ambos valores se impriman y de el resultado de su suma

#include <stdio.h>

int main()

{
    int val1, val2, res;
   
    printf("Ingrese el primer valor: /n");
    scanf("%i",&val1);
    printf("Ingrese el segundo valor: /n");
    scanf("%i",&val2);
   
    res = val1 + val2

    printf("La suma de %i y %i es: %i/n",val1, val2, res);
   
    return 0;
   
}

yo actualmente estoy utilizando como IDE el Dev-c++, y cuando doy para compilar el error sucede en printf("La suma de %i y %i es: %i",val1, val2, res); por favor si me pueden decir que estoy haciendo mal se lo agradesco!

SkullFlower

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: Problema de novato
« Respuesta #1 en: Sábado 23 de Enero de 2010, 07:00 »
0
Hola,

estaba viendo tu codigo y estos son los errores que encontre:

en las lineas donde pones /n para hacer el salto de renglon debe ser asi n
con la otra diagonal invertida o no se como se llame xD

en la parte de :

res = val1 + val2;

te falto poner el punto y coma al final.

y en vez de %i debe ser %d aunque lo compile con %i y si se pudo, la verdad no se por que a ver si alguien puede decir por que lol

pero creo que lo correcto deberia ser %d.

Código: C
  1. #include <stdio.h>
  2.  
  3. int main()
  4.  
  5. {
  6.     int val1, val2, res;
  7.  
  8.     printf("Ingrese el primer valor: n");
  9.     scanf("%d",&val1);
  10.     printf("Ingrese el segundo valor: n");
  11.     scanf("%d",&val2);
  12.  
  13.     res = val1 + val2;
  14.  
  15.     printf("La suma de %d y %d es: %dn",val1, val2, res);
  16.  
  17.     return 0;
  18. }
  19.  

tkc009

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Problema de novato
« Respuesta #2 en: Sábado 23 de Enero de 2010, 07:26 »
0
Muchisimas gracias skullflower por responderme y decirme los errores del programa, ahora en adelante lo voy a tener cuenta esos detalles, nada mas que una pequeña aclaracion sobre el tema de %d va %i por que pertenece al int asi vi en un tutorial xD, otra cosa cuando se ingresa el primer valor y el segundo valor ahi va todo bien, pero se cierra el programa cuando en realidad tendria que imprimir el resultado eso que podria ser  :huh:
« última modificación: Sábado 23 de Enero de 2010, 07:41 por tkc009 »

SkullFlower

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: Problema de novato
« Respuesta #3 en: Sábado 23 de Enero de 2010, 07:39 »
0
pon esto antes de return 0

Código: C
  1. while(getchar()!='n');
  2.  

va a hacer una pausa hasta que presiones enter y luego se cerrara solo el programa.

Aprendiz21Sam

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problema de novato
« Respuesta #4 en: Sábado 23 de Enero de 2010, 14:59 »
0
%i y %d es exactamente lo mismo y se puede usar indistintamente. La verdad no se por qué hay dos para enteros pero lo investigaré. De todas formas puedes usarlas indistintamente.

Otra cosa más, recuerda lo que te dijo skull. Para que veas el resultado te dijo que añadieras "getch();", pero esto es algo que se encuentra en la biblioteca ns "conio.h". Es decir que en la cabecera del programa, a parte de añadir la "stdio.h" debes añadir esa otra.

Código: C
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema de novato
« Respuesta #5 en: Sábado 23 de Enero de 2010, 15:21 »
0
Aprendiz21Sam: no, dijeron getchar que es un funcion standard a diferencia de la que vos mencionas (getch) que no lo es y por eso necesita esa libreria no standard (conio.h).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Aprendiz21Sam

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problema de novato
« Respuesta #6 en: Domingo 24 de Enero de 2010, 00:54 »
0
Cierto, leí mal. Gracias por la correción.

tkc009

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Problema de novato
« Respuesta #7 en: Domingo 24 de Enero de 2010, 17:54 »
0
Hola de nuevo disculpen las molestias pero tengo una duda que les queria comentar y me parecia absurdo hacer un nuevo post xD, alguien me podria explicar en que se basa exactamente el "return 0;" se que se encarga de retornar el valor pero cuando hablamos de retornar que se refiere a que vuelve de 0 con el programa y empieza todo de nuevo?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema de novato
« Respuesta #8 en: Domingo 24 de Enero de 2010, 18:56 »
0
No, termina, ese es el valor que le devuelve al S.O. al finalizar.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

tkc009

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Problema de novato
« Respuesta #9 en: Domingo 24 de Enero de 2010, 20:14 »
0
Otra cosa por que cuando ejecuto el programa me tira un error de "no enviar" solamente cuando termino de ingresar los dos valores

Código: C++
  1. #include <stdio.h>
  2.  
  3. int main()
  4.  
  5. {
  6.  
  7.   int num, num2, res;
  8.   char nom;
  9.  
  10.   /* Aqui se ingresa el nombre*/
  11.  
  12.   printf("Ingrese su nombre: n");
  13.   scanf("%s",&nom);
  14.  
  15.   /*Se suman los valores*/
  16.  
  17.   printf("Ingrese primer numero: n");
  18.   scanf("%i",&num);
  19.   printf("Ingrese segundo numero: n");
  20.   scanf("%i",&num2);
  21.  
  22.   res = num + num2;
  23.  
  24.   printf("Hola %s la suma de %i y %i es %in", nom, num, num2, res);
  25.       while(getchar()!='n');
  26.       getchar();
  27.  
  28.   return 0;
  29.  
  30. }  
  31.  

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema de novato
« Respuesta #10 en: Domingo 24 de Enero de 2010, 21:15 »
0
%s es para CADENAS y nom es un solo caracter.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

tkc009

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Problema de novato
« Respuesta #11 en: Domingo 24 de Enero de 2010, 23:06 »
0
Gracias por la respuesta eternal idol pero ese no era el error, sino que en la variable char no le agrege al lado cuantos caracteres se leen que tendria que quedar:

Código: C++
  1. char nom[12];
  2.  

Antes por defecto era nulo y por eso habia un error de interpretacion, gracias por la ayuda igualmente.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema de novato
« Respuesta #12 en: Domingo 24 de Enero de 2010, 23:19 »
0
Era exactamente el error que te indique, ahora tenes una cadena (un conjunto de caracteres finalizado en 0) y antes tenias un solo caracter.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.