vc goto 语句的使用问题 20
以下是我VC的程序代码,使用的循环语句是goto语句,但不知道为什么只能循环一次,麻烦哪位帮我解答一下,不慎感激~~~~~~#include"stdafx.h"#incl...
以下是我VC的程序代码 ,使用的循环语句是goto 语句,但不知道为什么只能循环一次,麻烦哪位帮我解答一下,不慎感激~~~~~~
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
double f(double x,double y)
{
if (x>y)
return x;
else
return y;
}
void main()
{
double A[3]={1.0e-4,1.0e-4,1.0e-4} ;
int i,j;
A: double area=sqrt(2)*A[0]*A[2]+A[0]*A[1]+A[2]*A[1];
double U[3][2]={2*(A[1]+sqrt(2)*A[2]),4*A[1]/3,2*sqrt(2)*A[2],sqrt(2)*A[0],8*A[1]/3,A[1]+sqrt(2)*A[0]};
double u[3][2];
for (i=0;i<3;i++)
for (j=0;j<2;j++)
u[i][j]=U[i][j]*1.0e-4/area;
double u1[3];
for (i=0;i<3;i++)
{
u1[i]=f(u[i][0],u[i][1]);
A[i]=A[i]*u1[i];
}
for (i=0;i<3;i++)
{
cout<<"A[i]="<<A[i]<<" "<<endl;
cout<<"u1[i]="<<u1[i]<<" "<<endl;
}
double weight=sqrt(2)*A[0]+sqrt(2)*A[2]+A[1];
cout<<weight<<"pl"<<endl;
double m=f(f(u1[0],u1[1]),u1[2]);
double n=abs(1-m);
if(n>0.05) goto A;
我刚自己把它改过来了,主要问题是求绝对值abs时,是取整,所以求得的绝对值是0,不满足循环的跳转条件,因此goto 语句没有跳转, 展开
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
double f(double x,double y)
{
if (x>y)
return x;
else
return y;
}
void main()
{
double A[3]={1.0e-4,1.0e-4,1.0e-4} ;
int i,j;
A: double area=sqrt(2)*A[0]*A[2]+A[0]*A[1]+A[2]*A[1];
double U[3][2]={2*(A[1]+sqrt(2)*A[2]),4*A[1]/3,2*sqrt(2)*A[2],sqrt(2)*A[0],8*A[1]/3,A[1]+sqrt(2)*A[0]};
double u[3][2];
for (i=0;i<3;i++)
for (j=0;j<2;j++)
u[i][j]=U[i][j]*1.0e-4/area;
double u1[3];
for (i=0;i<3;i++)
{
u1[i]=f(u[i][0],u[i][1]);
A[i]=A[i]*u1[i];
}
for (i=0;i<3;i++)
{
cout<<"A[i]="<<A[i]<<" "<<endl;
cout<<"u1[i]="<<u1[i]<<" "<<endl;
}
double weight=sqrt(2)*A[0]+sqrt(2)*A[2]+A[1];
cout<<weight<<"pl"<<endl;
double m=f(f(u1[0],u1[1]),u1[2]);
double n=abs(1-m);
if(n>0.05) goto A;
我刚自己把它改过来了,主要问题是求绝对值abs时,是取整,所以求得的绝对值是0,不满足循环的跳转条件,因此goto 语句没有跳转, 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询