小弟我写了如下一段代码:
#include
#include
#define n 1/*此处修改n的值*/
#define Vt 0.026/*此处修改Vt的值*/
void main(void)
{
小弟我写了如下一段代码:
#include
#include
#define n 1/*此处修改n的值*/
#define Vt 0.026/*此处修改Vt的值*/
void main(void)
{
float Vin,Vd,Is,Ro;
int i;
char order;
Vd=0.6;
printf("****************************************************************************\n\n");
printf("本程序可计算Vin=Vd+Is(e^(Vd/(n*Vt)) - 1)*Ro中的Vd\n");
printf("\n");
printf("参数Vt为热电压,室温下其近似值为0.026v\n");
printf("\n");
printf("参数n常称为发射系数或理想因素,取值范围为1<= n <=2,在本程序中我们将n取1\n\n");
printf("****************************************************************************\n\n");
printf("请输入输入电压Vin的值(单位:v):");
scanf("%f",&Vin);
printf("请输入反向饱和电流Is的值(单位:A):");
scanf("%f",&Is);
printf("请输入加载电阻Ro的值(单位:Ω):");
scanf("%f",&Ro);
printf("\n");
printf("****************************************************************************\n");
printf("\n");
printf("你所输入的Vin为:%.1f v,Is为:%.12f A,Ro为 %.1f Ω\n",Vin,Is,Ro);
printf("\n");
while(Vd<=0.7)
{
double A,B,sum;
A=Vd/(n*Vt);
B=exp(A)-1;
sum=Vin-Vd-Is*Ro*B;
if(sum<=0.0001)
{
printf("Vd的值为:%f\n",Vd);
break;
}
Vd+=0.001;
}
printf("再次计算请键入“r”,退出请键入“q”");
scanf("%c",&order);
if(order=='r')
{
(请高手填写部分)
}
}
现在想请高手解答一下如何使我在键入‘r’之后程序可重新执行,最好不要用goto语句,小弟万分感激。
展开
全部