
[Curso] Introducción a la programación en C (V)
Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06
Re: [Curso] Introducción a la programación en C (V)
scanf("%s", &nombre); a eso quitale el "&" y ya debería de desaparecer el error 


- Dark Pallacus
- ViP Hordes
- Mensajes: 1509
- Registrado: 03 Sep 2009, 00:35
- PSN ID: Pallacus
- Ubicación: Barcelona
- Contactar:
Re: [Curso] Introducción a la programación en C (V)
Muchas gracias ~Rdavid~. Pero no lo entiendo, el profe dijo que usáramos & y en todos los códigos que he visto en la lección aparece. Porque a mi no me funciona igual?
Le he dado un repaso al código, también tenia un /n en vez de \n. También he añadido bastantes saltos de línea para que se vea mas claro al ejecutar.
Y queda así
PD: CON ustedes se aprende DPM. Gracias.
Le he dado un repaso al código, también tenia un /n en vez de \n. También he añadido bastantes saltos de línea para que se vea mas claro al ejecutar.
Código: Seleccionar todo
//incluimos las librerias requeridas
#include <stdio.h>
#include <unistd.h>
//función principal
int main(int argc, char *argv[])
{
//Declaramos las vairables
char nombre[80];
int edad;
//Investigamos el nombre del usuario
printf("\nPor favor, introduzca su nombre: ");
scanf("%s", nombre);
//Y su edad, que cotillas somos
printf("Ahora su edad: ");
scanf("%d", &edad);
//Y finalmente traicionamos la buena fé del usuario insultandolo
printf("\nTe llamas %s y tienes %d anos, pero eres feo de cojones.\n\n", nombre, edad);
return 0;
}
Y queda así

Código: Seleccionar todo
albert@albert-K50IE:~/Documents/Programació/C/Lección 05/Variables 3$ ./entrada
Por favor, introduzca su nombre: Pollacus
Ahora su edad: 33
Te llamas Pollacus y tienes 33 anos, pero eres feo de cojones.
albert@albert-K50IE:~/Documents/Programació/C/Lección 05/Variables 3$
PD: CON ustedes se aprende DPM. Gracias.
PS3 - PSP 2000
Re: [Curso] Introducción a la programación en C (V)
Dark Pallacus escribió:Muchas gracias ~Rdavid~. Pero no lo entiendo, el profe dijo que usáramos & y en todos los códigos que he visto en la lección aparece. Porque a mi no me funciona igual?
Bueno según sé, es porque el operador "&" obtiene la dirección de una variable pero nombre[80] es un puntero con la dirección de memoria ya reservada, por el contrario de la variable edad que no es un puntero.
En otras palabras siempre que uses cadenas de texto tienes que hacerlo sin el operador & con scanf, creo que entenderás mejor cuando llegues a ver punteros

Seguro que m0skit0 te lo explicaría mejor


- Dark Pallacus
- ViP Hordes
- Mensajes: 1509
- Registrado: 03 Sep 2009, 00:35
- PSN ID: Pallacus
- Ubicación: Barcelona
- Contactar:
Re: [Curso] Introducción a la programación en C (V)
Gracias. 
Entonces ya se verá a su debido tiempo.

Entonces ya se verá a su debido tiempo.
PS3 - PSP 2000
Re: [Curso] Introducción a la programación en C (V)
Como bien dice ~Rdavid~, lo entenderás cuando llegues al capítulo de punteros, que por ahora es el último. Hay cosas que hay que apechugar con ellas hasta entenderlas luego, desgraciadamente.

- Dark Pallacus
- ViP Hordes
- Mensajes: 1509
- Registrado: 03 Sep 2009, 00:35
- PSN ID: Pallacus
- Ubicación: Barcelona
- Contactar:
Re: [Curso] Introducción a la programación en C (V)
Aquí los deberes:Y el resultado:
Código: Seleccionar todo
// Incluimos las librerias requeridas:
#include <stdio.h>
#include <unistd.h>
//Función principal:
int main(int argc, char *argv[])
{
//Declaramos las variables
float e1, e2;
//Pedimos 2 edades:
printf("\nPor favor, introduce tu edad: ");
scanf("%f", &e1);
printf("Introduce la edad de otra persona: ");
scanf("%f", &e2);
//Y ahora soltamos las estadísticas:
printf("\nEntre los dos teneis %.0f anhos.\n", e1 + e2);
printf("La media de edad entre los dos es de %.1f anhos.\n", (e1+e2) / 2);
printf("El producto de ambas edades es %.0f.\n", e1 * e2);
//Aquí me la juego:
printf("Os lleváis %.0f anhos.\n\n", e1 - e2);
return 0;
}
Código: Seleccionar todo
albert@albert-K50IE:~/Documents/Programació/C/Lección 05/Variables 3$ ./var3
Por favor, introduce tu edad: 25
Introduce la edad de otra persona: 33
Entre los dos teneis 58 anhos.
La media de edad entre los dos es de 29.0 anhos.
El producto de ambas edades es 825.
Os lleváis -8 anhos.
albert@albert-K50IE:~/Documents/Programació/C/Lección 05/Variables 3$
PS3 - PSP 2000
Re: [Curso] Introducción a la programación en C (V)
¿Edad como float? Una manera rara de verlo jajajajaja. A ver si eres capaz de hacerlo tal que se introduzca la edad exacta (años y meses) y calcular la diferencia 


- Dark Pallacus
- ViP Hordes
- Mensajes: 1509
- Registrado: 03 Sep 2009, 00:35
- PSN ID: Pallacus
- Ubicación: Barcelona
- Contactar:
Re: [Curso] Introducción a la programación en C (V)
Edad como float para no joder la media. 


mmmmmm.... luego te lo digom0skit0 escribió:A ver si eres capaz de hacerlo tal que se introduzca la edad exacta (años y meses) y calcular la diferencia

PS3 - PSP 2000
Re: [Curso] Introducción a la programación en C (V)
Dark Pallacus escribió:Edad como float para no joder la media.
Amm cierto es, mil disculpas


- Dark Pallacus
- ViP Hordes
- Mensajes: 1509
- Registrado: 03 Sep 2009, 00:35
- PSN ID: Pallacus
- Ubicación: Barcelona
- Contactar:
Re: [Curso] Introducción a la programación en C (V)
Pues me he liado a hacerlo:
He "comentado" las lineas referentes a la media, producto y resta para hacerlo paso a paso, empezando con la suma. Contra todo pronostico y gracias al compilador
he conseguido aplicar un "if" para calcular la suma de las edades, el problema lo tengo para que si la suma de los meses da mas de 11, reste 12 a los meses y sume 1 a los años:
EDITO: Solucionado:Voy a por las otras operaciones 
EDITO:
Todas las operaciones incluidas. Ahora tengo que pulir 2 cosas; cuando los meses = 0 y la diferencia de edad.
He "comentado" las lineas referentes a la media, producto y resta para hacerlo paso a paso, empezando con la suma. Contra todo pronostico y gracias al compilador

Spoiler:
EDITO: Solucionado:
Código: Seleccionar todo
if(sumam > anho)
{
//Esta línea la usé para saber si se ejecutaba el "if"
// printf("tas pasao\n");
sumam = sumam - 12;
ml = ml + 1;
}

EDITO:
Todas las operaciones incluidas. Ahora tengo que pulir 2 cosas; cuando los meses = 0 y la diferencia de edad.
Spoiler:
PS3 - PSP 2000