SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: tkc009 en Sábado 23 de Enero de 2010, 04:58

Título: Problema de novato
Publicado por: tkc009 en Sábado 23 de Enero de 2010, 04:58
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!
Título: Re: Problema de novato
Publicado por: SkullFlower en Sábado 23 de Enero de 2010, 07:00
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.  
Título: Re: Problema de novato
Publicado por: tkc009 en Sábado 23 de Enero de 2010, 07:26
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:
Título: Re: Problema de novato
Publicado por: SkullFlower en Sábado 23 de Enero de 2010, 07:39
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.
Título: Re: Problema de novato
Publicado por: Aprendiz21Sam en Sábado 23 de Enero de 2010, 14:59
%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.  
Título: Re: Problema de novato
Publicado por: Eternal Idol en Sábado 23 de Enero de 2010, 15:21
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).
Título: Re: Problema de novato
Publicado por: Aprendiz21Sam en Domingo 24 de Enero de 2010, 00:54
Cierto, leí mal. Gracias por la correción.
Título: Re: Problema de novato
Publicado por: tkc009 en Domingo 24 de Enero de 2010, 17:54
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?
Título: Re: Problema de novato
Publicado por: Eternal Idol en Domingo 24 de Enero de 2010, 18:56
No, termina, ese es el valor que le devuelve al S.O. al finalizar.
Título: Re: Problema de novato
Publicado por: tkc009 en Domingo 24 de Enero de 2010, 20:14
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.  
Título: Re: Problema de novato
Publicado por: Eternal Idol en Domingo 24 de Enero de 2010, 21:15
%s es para CADENAS y nom es un solo caracter.
Título: Re: Problema de novato
Publicado por: tkc009 en Domingo 24 de Enero de 2010, 23:06
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.
Título: Re: Problema de novato
Publicado por: Eternal Idol en Domingo 24 de Enero de 2010, 23:19
Era exactamente el error que te indique, ahora tenes una cadena (un conjunto de caracteres finalizado en 0) y antes tenias un solo caracter.