Cita:
Iniciado por Eternal Idol No sirve de nada el cambio, seguis usando las variables locales esas (vol,resis,induc,capa,frecu), borralas y usa los miembros de la estructura ... tal vez quieras cambiarles el tipo a float y usar la funcion que recibe numeros y no cadenas ...
Gracias por tomarte el tiempo en ayudarme. Por fin me salio. Despues de que me hiciste esas correcciones, el programa corrio perfectamente. Me quedo asi:
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
struct corriente
{
double volt;
double resis;
double induc;
double capaci;
double frecue;
double inten;
};
float capturanum(string msj);
double calculainten(corriente *apinten);
float capturainten(corriente *apinten);
void imprimir(corriente *apinten);
int main()
{
corriente apinten1;
capturainten(&apinten1);
imprimir(&apinten1);
system("pause");
return 0;
}
float capturanum(string msj)
{
float num;
cout<<msj;
cin>>num;
return num;
}
double calculainten(corriente *apinten)
{
float i,x1,x2,x3,x4,x5,x6,x7;
x1=-1*(1/2*3.1416*(*apinten).frecue*(*apinten).capaci);
x2=2*3.1416*(*apinten).frecue*(*apinten).induc;
x3=x1+x2;
x4=pow(x3,2);
x5=pow((*apinten).resis,2)+x4;
x6=sqrt(x5);
x7=(*apinten).volt/x6;
i=x7;
return i;
}
float capturainten(corriente *apinten)
{
(*apinten).volt=capturanum("Introduzca el voltaje:");
(*apinten).resis=capturanum("Introduzca resistencia:");
(*apinten).induc=capturanum("Introduzca inductancia:");
(*apinten).capaci=capturanum("Introduzca capacitancia:");
(*apinten).frecue=capturanum("Introduzca la frecuencia:");
apinten->inten=calculainten(apinten);
}
void imprimir(corriente *apinten)
{
cout<<"La intensidad es:"<<calculainten(apinten)<<endl;
}