Mi programa es este, consigo obtener un vertice, pero los valores x e y de este no son correctos y no consigo que muestre en pantalla todos los vertices, solo muestra uno, el primero. Hasta la linia 75 funciona correctamente. A partir de ahi no se obtiene el resultado deseado.
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define TAM 100
// Prototipos de las funciones
int leeIVector(int *v, int max);
int leeDVector(double *v, int max);
int leeIVector2(int *v, int max);
int leeDVector2(double *v, int max);
void escIVector(int *v, int l);
void escDVector(double *res,double *ress, int t);
void vertices(double *v, double *res, int t);
void vertices2(double *v, double *ress, int t);
//Funcion main
int main()
{
int l, v[100];
double vd[100];
double res[100];
double ress[100];
double x;
// Hacemos los mismo con el de reales
l = leeDVector2(vd, 100);
vertices(vd,res, l);
vertices2(vd,ress,1);
escDVector(res,ress,1);
// Nada puede ir mal
exit(EXIT_SUCCESS);
}
//Funcion para introducir datos
int leeDVector2(double *v, int max)
{
char aux[200];
int t;
printf("Introduce la coordenada x del punto:");
fgets(aux, TAM - 1, stdin);
v[0] = atof(aux);
printf("Introduce la coordenada y del punto:");
fgets(aux, TAM - 1, stdin);
v[1] = atof(aux);
printf("Introduce el radio:");
fgets(aux, TAM - 1, stdin);
v[2] = atof(aux);
printf("Introduce numero de lados:");
fgets(aux, TAM - 1, stdin);
t = atof(aux);
return t;
}
//Funcion calculo vertices
void vertices(double *v, double *res, int t){
int i;
double angulo;
double alpha;
alpha=360/ t;
double radian;
radian=180/3.1416;
double cos(double x);
for(i=0;i<t; i=i+1){
res[i]= v[0]+v[2]*cos(angulo/radian);
angulo=angulo +alpha;
}
}
void vertices2(double *v, double *ress, int t){
int i;
double angulo;
double alpha;
alpha=360/ t;
double radian;
radian=180/3.1416;
double sin(double x);
for(i=0;i<t; i=i+1){
ress[i]= v[0]+v[2]*sin(angulo/radian);
angulo=angulo +alpha;
}
}
//Imprimir
void escDVector(double *res,double *ress, int t)
{
int i;
printf("\n\nVector con %d elementos:\n\n", t);
for (i = 0; i < t; i++)
printf("Elemento %d: %lf %lf\n", i + 1, res[i],ress[i]);
puts("\n"); // Lineas en blanco para que sea mas legible
}