Buenas tengo un problema con un codigo, es un error especifico, pero os pondre el codigo y el enunciado entero
Ejercicio 35: Diseña un programa que declare una estructura, llamada punto3D, capaz de contener las coordenadas x, y y z de un punto del espacio de tres dimensiones. Se declarará una función que permitirá desplazar uno de los ejes (x, y o z) de un punto. A dicha función se pasará como argumento el valor actual del eje y el desplazamiento a sumar o restar. El programa leerá coordenadas de puntos de teclado, un desplazamiento para el punto y la coordenada a desplazar. Se visualizará en pantalla las coordenadas del punto desplazado. Al leerse un punto con sus tres coordenadas negativas se parará el programa (en este caso no se llegará a leer el desplazamiento).
Código c:
Ver original#include <stdio.h>
#include <conio.h>
void desplazar (int lax, int des);
void main()
{
struct punto3D
{
int x;
int y;
int z;
};
struct punto3D elx, ely, elz;
int desplazamiento, negativo, fin=0;
char opcion;
while (fin==0)
{
negativo=0;
printf ("Dime la coordenada de x\n"); printf ("Dime la coordenada de y\n"); printf ("Dime la coordenada de z\n"); if (elx.x<<0)
{
negativo++;
}
printf ("\nDesplaza el eje x"); scanf ("%d", &desplazamiento
);
desplazar (elx.x, desplazamiento);
if (elx.x<<0)
{
negativo++;
}
if (elx.x>>0)
{
negativo--;
}
if (ely.y<<0)
{
negativo++;
}
if (ely.y>>0)
{
negativo--;
}
if (elz.z<<0)
{
negativo++;
}
if (elz.z>>0)
{
negativo--;
}
if (negativo>=3)
{
fin=1;
}
printf ("La coordenada de x es: %d\n", elx.
x); }
}
void desplazar (int lax, int des)
{
char opcion;
printf ("\nQuieres restar o sumar el desplazamiento al eje x\n"); scanf ("%c", &opcion
); //AQUI ESTA EL FALLO, el scanf se lo pasa por el forro
if (opcion=='R')
{
lax=lax-des;
}
if (opcion=='S')
{
lax=lax+des;
}
}
Llevo unos 20 minutos intentando solucionar el fallo, pero no se. Seguramente sera una tonteria, pero en fin....
No hay fallos de compilación, solo que ese scanf no lo hace.
Un saludo