Autor
|
Tema: Presentarme y primera peticion de ayuda!!! (Leído 3,458 veces)
|
raulinchi
Desconectado
Mensajes: 8
|
Hola, soy RAul, estoy empezando con C y me han planteado un problema que no me sale, adjunto codigo:
void main(){
int a,b,s,r,suma,resta;
printf("Dame dos enteros:\n"); scanf("%d %d", &a,&b);
s = suma_resta(a,b,&r); printf("La suma es %d y la resta es %d:\n",suma,resta);
}
int suma_resta(int x,int y,int *pz){
int suma,resta; suma = x + y; resta = x - y; *pz=resta; return suma; }
Utilizando una funcion para realizar la suma y resta, devolviendo la suma y guardando en u puntero la resta para devolverlo
¿Por que no me hace bien la operacion?
Gracias y perdonad por la torpeza.
Saludos.
|
|
|
En línea
|
|
|
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
¿El código es tuyo? Lo digo x cosas como esta: printf("La suma es %d y la resta es %d:\n",suma,resta); suma y resta no valen nada así que no entiendo que esperas que se imprima. #include <stdio.h> main() { int a=0,b=0,s=0,r=0,suma=0,resta=0; s = suma_resta(a,b,&r); printf("La suma es %d y la resta es %d.\n",s ,r ); return 0; } int suma_resta(int x,int y,int *pz) { int suma,resta; suma = x + y; resta = x - y; *pz=resta; return suma; }
Dame dos enteros: 8 7 La suma es 15 y la resta es 1.
|
|
|
En línea
|
The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
|
|
|
raulinchi
Desconectado
Mensajes: 8
|
Hola Tzhed y muchas gracias por contestar, en principio decirte que si, el codigo es mil y entiendo que este mal, llevo dos dias intentando comprender algo de C y bueno, pues poco a poco espero aprender algo.
Ya entiendo lo que me explicas, gran error por mi parte, muchas gracias. Lo que no entiendo es si es necesario inicializar las variables como lo haces a 0
Muchas gracias de nuevo.
|
|
|
En línea
|
|
|
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
Siempre que sea posible es recomendable (se deben xD) inicializar las variables, esto es C no BASIC.
Saludos
|
|
|
En línea
|
The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
|
|
|
raulinchi
Desconectado
Mensajes: 8
|
Ok, gracias, asi lo hare..
Saludos.
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Lo que no entiendo es si es necesario inicializar las variables como lo haces a 0 Depende del caso. No es necesario si lo primero que haces con la variable es asignarle un valor. En tu programa eso (la asignacion) no es seguro (debido a que depende de la entrada estandar) y por ello es mejor verificar el valor de retorno de la funcion scanf: #include <stdio.h> #include <stdlib.h> int suma_resta(int x, int y, int *pz); int main(void) { int a; int b; int s; int r; if (scanf("%d %d", &a ,&b ) != 2){ puts("Entrada no valida!"); return EXIT_FAILURE; } s = suma_resta(a, b, &r); printf("La suma es %d y la resta es %d\n", s , r ); return EXIT_SUCCESS; } int suma_resta(int x, int y, int *pz) { *pz = x - y; return x + y; }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
raulinchi
Desconectado
Mensajes: 8
|
Entiendo, lo que haces es verificar que estas metiendo dos valores por teclado, sino te devolveria error, no?
|
|
|
En línea
|
|
|
|
raulinchi
Desconectado
Mensajes: 8
|
Por cierto, a`rovecho para agradecer vuestra inmediata ayuda..
Muchas gracias.
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Entiendo, lo que haces es verificar que estas metiendo dos valores por teclado, sino te devolveria error, no? Correcto. La función scanf retorna el numero de conversiones realizadas con exito y que en tu caso deben ser dos. Si no es asi lo indicamos mediante un mensaje y (a falta de algo mejor) terminamos de inmediato el programa. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
presentación y petición de ayuda
Programación Visual Basic
|
makinen00
|
0
|
1,489
|
2 Marzo 2008, 13:13 pm
por makinen00
|
|
|
[Ayuda] Inet (Todavía se está ejecutando la última petición)
Programación Visual Basic
|
The_Shakah
|
5
|
5,070
|
11 Agosto 2008, 01:00 am
por The_Shakah
|
|
|
presentarme o no a las clases presenciales para la certificación CompTIA A+
Foro Libre
|
hsk75rv
|
0
|
1,796
|
27 Marzo 2017, 01:49 am
por hsk75rv
|
|
|
Quiero presentarme
Dudas Generales
|
tioguay68
|
6
|
2,795
|
27 Abril 2019, 20:35 pm
por rub'n
|
|
|
No veo donde presentarme
Sugerencias y dudas sobre el Foro
|
simples
|
1
|
3,187
|
3 Diciembre 2021, 06:03 am
por Danielㅤ
|
|