初写C程序求指导啊,为什么我输入'y'不能进入下一次循环而是,控制台直接退出
// this application is used to calculate the area of coupling Plate//这个程序用等分圆的方法近似计算天圆地方过渡曲面的面积,
//
void Crossproduct(double p1[],double p2[],double result[])//把两个向量p1xp2的积赋给result
{
result[0]=p1[1]*p2[2]-p1[2]*p2[1];
result[1]=p1[2]*p2[0]-p1[0]*p2[2];
result[2]=p1[0]*p2[1]-p1[1]*p2[0];
}
double Innerproduct(double p1[],double p2[])//返回两个向量的p1.p2的积
{
double result;
result=p1[0]*p2[0]+p1[1]*p2[1]+p1[2]*p2[2];
return result;
}
#include <math.h>
#include <stdio.h>
#define PI 3.1415926
int main()
{
double Pipe_radii=500; //圆管的半径
double Div_0[3]; //后等分点
double Div_1[3]; //前等分点
double Div_vec[3]; //等分向量
double Acme[3]={600,600,300};//收口板顶点
double da[3]; //存放前等分点到顶点的向量
int Div_flg=0; //等分点标记
double MidAre[3]; //用来存放等分向量和向量da的叉积
double Area=0; //收口板面积
char c='y';
do
{
printf("输入进口短管外径\n");
scanf("%f",&Pipe_radii);
printf("输入收口板顶点距离X\n");
scanf("%f",&Acme[0]);
printf("输入收口板顶点距离Y\n");
scanf("%f",&Acme[1]);
printf("输入收口高度\n");
scanf("%f",&Acme[2]);
Div_0[0]=Pipe_radii; //初始化后等分向量点使它指向等分点0
Div_0[1]=0;
Div_0[2]=0;
for(Div_flg=1;Div_flg<=3;Div_flg++)
{
Div_1[0]=Pipe_radii*cos(PI/6*Div_flg); //使前等分点向量指向后等分点的下一个点
Div_1[1]=Pipe_radii*sin(PI/6*Div_flg);
Div_1[2]=0;
Div_vec[0]=Div_1[0]-Div_0[0]; //使等分向量等于前等分点向量减去后等分点向量
Div_vec[1]=Div_1[1]-Div_0[1];
Div_vec[2]=Div_1[2]-Div_0[2];
da[0]=Acme[0]-Div_1[0]; //使向量da等于前等分点到定点的向量
da[1]=Acme[1]-Div_1[1];
da[2]=Acme[2]-Div_1[2];
Crossproduct(Div_vec,da,MidAre); //得到等分向量与向量da的叉积并放入MidAre数组中
Area=Area+0.5*sqrt(Innerproduct(MidAre,MidAre)); //把第Div_flg个三角形的面积加入到总面积中
Div_0[0]=Div_1[0];
Div_0[1]=Div_1[1];
Div_0[2]=Div_1[2]; //让前等分点变成后等分点,进入下次循环
}
printf("收口板面积%f\n",Area);
printf("收口板厚度8\n收口板重量%f",Area*8*7.85/1000000);
printf("\n是‘y’否‘任意键’继续\n");//输入y继续下次计算,其他任意键退出?????想从从这里进入下次循环为什么不行
scanf("%c",&c);
}
while(c=='y');
getchar();
return 0;
}