
c语言高手来看看~~~!!!
#include<stdio.h>#include<math.h>#defineinva(tan(a)-a);#defineinvf(tan(f)-f);#defineT...
#include<stdio.h>
#include<math.h>
#define inva (tan(a)-a);
#define invf (tan(f)-f);
#define TT 3.1415926;
/*float chilun(int x1,int x2,int z1,int z2,float a,float b, float u);*/
int x1,x2,z1,z2,h;
float a,f,u;
/*printf ("x1=%d,,x2=%d,z1=%d,z2=%d,a=%f,f=%f,u=%f");
scanf("%d,%d,%d,%d,%f,%f,%f",&x1,&x2,&z1,&z2,&a,&f,&u); */
void main (void)
{ float c;
float putce(float u);
printf ("x1=%d,,x2=%d,z1=%d,z2=%d,a=%f,f=%f,u=%f");
scanf("%d,%d,%d,%d,%f,%f,%f",&x1,&x2,&z1,&z2,&a,&f,&u);
c=putce(u);
printf("c=%f",c);
}
float putce(float u)
{
float m,n,i,j,x,ce;
float swa(float z1);
x=swap(z1);
m=1-1/u;
n=1/u;
i=1-m*x-n*x*x;
j=1/i;
ce=j;
printf("%f",ce);
return ce;
}
float swa(int z1)
{
float y,c1,c2,c3,n,m;
float com(float h);
float power(float x1,float f,int z1,int u);
/*printf("X=%f");
// scanf("%f",&X);*/
m=com(h);
n=power(x1,f,z1,u);
c3=(float)TT/z1;
c1=2*c3;
c2=(c1-n)/tan(m);
y=1+c2;
printf("%f",y);
return y;
}
float power(float x1,float f,int z1,int u)
{
float PP1,PP2,PP3,temp,m,m1,n,q,p1;
float com(float x);
q=com(h);
PP1=(1-x1)/z1;
PP2=(u+1)/2;
PP3=cos(f)/cos(q)-1;
m=1-2*(PP1+PP2*PP3);
m1=(m/cos(f))*(m/cos(f));
temp=sqrt(m1)-1;
n=temp;
printf("%f",n);
return n;
}
float fot(float h)
{
float tt,cc,ee,bb;
tt=1-2*(x1+x2)*(z1+z2);
cc=1.0000/3*tt;
ee=2*(x1+x2)*(z1+z2)*h;
bb=cc*pow(h,3)-ee-invf;
return bb;
}
float f1(float x1)
{
return ((1-2*(x1+x2)*(z1+z2))*pow(h,2)-2*(x1+x2)*(z1+z2));
}
float com(float h)
{
float x1,y1,y2,o;
float fot(float h);
float f1(float x1);
printf("h=");
scanf("%f",&h);
printf("fangchengjie\n");
do
{
x1=h;
y1=fot(h);
y2=f1(x1);
h=x1-y1/y2;
}
while (fabs(h-x1)>=1e-5);
printf("A root is %f\n",x1);
o=x1;
return o;
}
c1=TT/z1;
有什么错误?
请教大虾~~! 展开
#include<math.h>
#define inva (tan(a)-a);
#define invf (tan(f)-f);
#define TT 3.1415926;
/*float chilun(int x1,int x2,int z1,int z2,float a,float b, float u);*/
int x1,x2,z1,z2,h;
float a,f,u;
/*printf ("x1=%d,,x2=%d,z1=%d,z2=%d,a=%f,f=%f,u=%f");
scanf("%d,%d,%d,%d,%f,%f,%f",&x1,&x2,&z1,&z2,&a,&f,&u); */
void main (void)
{ float c;
float putce(float u);
printf ("x1=%d,,x2=%d,z1=%d,z2=%d,a=%f,f=%f,u=%f");
scanf("%d,%d,%d,%d,%f,%f,%f",&x1,&x2,&z1,&z2,&a,&f,&u);
c=putce(u);
printf("c=%f",c);
}
float putce(float u)
{
float m,n,i,j,x,ce;
float swa(float z1);
x=swap(z1);
m=1-1/u;
n=1/u;
i=1-m*x-n*x*x;
j=1/i;
ce=j;
printf("%f",ce);
return ce;
}
float swa(int z1)
{
float y,c1,c2,c3,n,m;
float com(float h);
float power(float x1,float f,int z1,int u);
/*printf("X=%f");
// scanf("%f",&X);*/
m=com(h);
n=power(x1,f,z1,u);
c3=(float)TT/z1;
c1=2*c3;
c2=(c1-n)/tan(m);
y=1+c2;
printf("%f",y);
return y;
}
float power(float x1,float f,int z1,int u)
{
float PP1,PP2,PP3,temp,m,m1,n,q,p1;
float com(float x);
q=com(h);
PP1=(1-x1)/z1;
PP2=(u+1)/2;
PP3=cos(f)/cos(q)-1;
m=1-2*(PP1+PP2*PP3);
m1=(m/cos(f))*(m/cos(f));
temp=sqrt(m1)-1;
n=temp;
printf("%f",n);
return n;
}
float fot(float h)
{
float tt,cc,ee,bb;
tt=1-2*(x1+x2)*(z1+z2);
cc=1.0000/3*tt;
ee=2*(x1+x2)*(z1+z2)*h;
bb=cc*pow(h,3)-ee-invf;
return bb;
}
float f1(float x1)
{
return ((1-2*(x1+x2)*(z1+z2))*pow(h,2)-2*(x1+x2)*(z1+z2));
}
float com(float h)
{
float x1,y1,y2,o;
float fot(float h);
float f1(float x1);
printf("h=");
scanf("%f",&h);
printf("fangchengjie\n");
do
{
x1=h;
y1=fot(h);
y2=f1(x1);
h=x1-y1/y2;
}
while (fabs(h-x1)>=1e-5);
printf("A root is %f\n",x1);
o=x1;
return o;
}
c1=TT/z1;
有什么错误?
请教大虾~~! 展开
展开全部
楼主的运行结果是没错的,我和你的结果是一样的。
我的解答:
方向键没有ASCII码。
方向键不是单个字符,是组合的,不同于字母和数字之类的键,按一个键,得两个字符信号,所以如果要获取的时候要用2个getchar()。
楼主你肯定没有注意看帮助文档。
getch
functions
read
a
single
character
from
the
console
without
echoing
the
character.
Cant'b
be
used
to
read
CTRL+C.When
reading
a
function
key
or
an
arrow
key,
each
function
must
be
called
twice;
the
first
call
returns
0
or
0xE0,
and
the
second
call
returns
the
actual
key
code.
如果看不懂,可以给你翻译一下。
getch函数从控制台读取未编码的单个字符。不能读取到ctrl+c组合键。在读取一个功能键或者箭头(方向)键盘时,函数会返回两次,第一次调用返回0或者0xE0,第二次调用返回实际的键值。
你输入上下左右
结果中
都会先显示一个-32再显示实际键值
这里-32就是0XE0的有符号形式
如果你将你程序中的c定义为unsigned
char类型
则会输出
224(也就是0XE0)72;
正确代码如下
void
main()
{
unsigned
char
key;
key
=
getch();
if(
key
==
0
||
key
==
0xE0
)
{
key
=
getch();//如果是组合键或方向键则需在接受一次
}
printf(
"%d
",
key);
}
关键就是一个问题:方向键相当于一个组合键不是单一字符
我的解答:
方向键没有ASCII码。
方向键不是单个字符,是组合的,不同于字母和数字之类的键,按一个键,得两个字符信号,所以如果要获取的时候要用2个getchar()。
楼主你肯定没有注意看帮助文档。
getch
functions
read
a
single
character
from
the
console
without
echoing
the
character.
Cant'b
be
used
to
read
CTRL+C.When
reading
a
function
key
or
an
arrow
key,
each
function
must
be
called
twice;
the
first
call
returns
0
or
0xE0,
and
the
second
call
returns
the
actual
key
code.
如果看不懂,可以给你翻译一下。
getch函数从控制台读取未编码的单个字符。不能读取到ctrl+c组合键。在读取一个功能键或者箭头(方向)键盘时,函数会返回两次,第一次调用返回0或者0xE0,第二次调用返回实际的键值。
你输入上下左右
结果中
都会先显示一个-32再显示实际键值
这里-32就是0XE0的有符号形式
如果你将你程序中的c定义为unsigned
char类型
则会输出
224(也就是0XE0)72;
正确代码如下
void
main()
{
unsigned
char
key;
key
=
getch();
if(
key
==
0
||
key
==
0xE0
)
{
key
=
getch();//如果是组合键或方向键则需在接受一次
}
printf(
"%d
",
key);
}
关键就是一个问题:方向键相当于一个组合键不是单一字符
展开全部
#include
<stdio.h>
main()
{int
a,b;
/*b
没初始化*/
scanf("%d",&a);
while(a>0)
{b=b*a--;}
/*b
没初始化
他的值不确定*/
printf("%d",b);
没初始化
他的值不确定,所以你应该把b=0;
}
<stdio.h>
main()
{int
a,b;
/*b
没初始化*/
scanf("%d",&a);
while(a>0)
{b=b*a--;}
/*b
没初始化
他的值不确定*/
printf("%d",b);
没初始化
他的值不确定,所以你应该把b=0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<math.h>
#define inva (tan(a)-a);
#define invf (tan(f)-f);
#define TT 3.1415926;
/*float chilun(int x1,int x2,int z1,int z2,float a,float b, float u);*/
int x1,x2,z1,z2,h;
float a,f,u;
/*printf ("x1=%d,,x2=%d,z1=%d,z2=%d,a=%f,f=%f,u=%f");
scanf("%d,%d,%d,%d,%f,%f,%f",&x1,&x2,&z1,&z2,&a,&f,&u); */
float swap(int z1);
float com(float h);
float power(float x1,float f,int z1,int u);
float fot(float h);
float f1(float x1);
void main (void)
{ float c;
float putce(float u);
printf ("x1=%d,,x2=%d,z1=%d,z2=%d,a=%f,f=%f,u=%f");
scanf("%d,%d,%d,%d,%f,%f,%f",&x1,&x2,&z1,&z2,&a,&f,&u);
c=putce(u);
printf("c=%f",c);
}
float putce(float u)
{
float m,n,i,j,x,ce;
float swa(float z1);
x=swap(z1);
m=1-1/u;
n=1/u;
i=1-m*x-n*x*x;
j=1/i;
ce=j;
printf("%f",ce);
return ce;
}
float swap(int z1)
{
float y,c1,c2,c3,n,m;
/*printf("X=%f");
// scanf("%f",&X);*/
m=com(h);
n=power(x1,f,z1,u);
c3=3.1415926/z1;
c1=2*c3;
c2=(c1-n)/tan(m);
y=1+c2;
printf("%f",y);
return y;
}
float power(float x1,float f,int z1,int u)
{
float PP1,PP2,PP3,temp,m,m1,n,q,p1;
q=com(h);
PP1=(1-x1)/z1;
PP2=(u+1)/2;
PP3=cos(f)/cos(q)-1;
m=1-2*(PP1+PP2*PP3);
m1=(m/cos(f))*(m/cos(f));
temp=sqrt(m1)-1;
n=temp;
printf("%f",n);
return n;
}
float fot(float h)
{
float tt,cc,ee,bb;
tt=1-2*(x1+x2)*(z1+z2);
cc=1.0000/3*tt;
ee=2*(x1+x2)*(z1+z2)*h;
bb=cc*pow(h,3)-ee-invf;
return bb;
}
float f1(float x1)
{
return ((1-2*(x1+x2)*(z1+z2))*pow(h,2)-2*(x1+x2)*(z1+z2));
}
float com(float h)
{
float x1,y1,y2,o;
printf("h=");
scanf("%f",&h);
printf("fangchengjie\n");
do
{
x1=h;
y1=fot(h);
y2=f1(x1);
h=x1-y1/y2;
}
while (fabs(h-x1)>=1e-5);
printf("A root is %f\n",x1);
o=x1;
return o;
}
看看这个是不是你想要的结果。
有几个语法错误,还有一个宏的问题。
#include<math.h>
#define inva (tan(a)-a);
#define invf (tan(f)-f);
#define TT 3.1415926;
/*float chilun(int x1,int x2,int z1,int z2,float a,float b, float u);*/
int x1,x2,z1,z2,h;
float a,f,u;
/*printf ("x1=%d,,x2=%d,z1=%d,z2=%d,a=%f,f=%f,u=%f");
scanf("%d,%d,%d,%d,%f,%f,%f",&x1,&x2,&z1,&z2,&a,&f,&u); */
float swap(int z1);
float com(float h);
float power(float x1,float f,int z1,int u);
float fot(float h);
float f1(float x1);
void main (void)
{ float c;
float putce(float u);
printf ("x1=%d,,x2=%d,z1=%d,z2=%d,a=%f,f=%f,u=%f");
scanf("%d,%d,%d,%d,%f,%f,%f",&x1,&x2,&z1,&z2,&a,&f,&u);
c=putce(u);
printf("c=%f",c);
}
float putce(float u)
{
float m,n,i,j,x,ce;
float swa(float z1);
x=swap(z1);
m=1-1/u;
n=1/u;
i=1-m*x-n*x*x;
j=1/i;
ce=j;
printf("%f",ce);
return ce;
}
float swap(int z1)
{
float y,c1,c2,c3,n,m;
/*printf("X=%f");
// scanf("%f",&X);*/
m=com(h);
n=power(x1,f,z1,u);
c3=3.1415926/z1;
c1=2*c3;
c2=(c1-n)/tan(m);
y=1+c2;
printf("%f",y);
return y;
}
float power(float x1,float f,int z1,int u)
{
float PP1,PP2,PP3,temp,m,m1,n,q,p1;
q=com(h);
PP1=(1-x1)/z1;
PP2=(u+1)/2;
PP3=cos(f)/cos(q)-1;
m=1-2*(PP1+PP2*PP3);
m1=(m/cos(f))*(m/cos(f));
temp=sqrt(m1)-1;
n=temp;
printf("%f",n);
return n;
}
float fot(float h)
{
float tt,cc,ee,bb;
tt=1-2*(x1+x2)*(z1+z2);
cc=1.0000/3*tt;
ee=2*(x1+x2)*(z1+z2)*h;
bb=cc*pow(h,3)-ee-invf;
return bb;
}
float f1(float x1)
{
return ((1-2*(x1+x2)*(z1+z2))*pow(h,2)-2*(x1+x2)*(z1+z2));
}
float com(float h)
{
float x1,y1,y2,o;
printf("h=");
scanf("%f",&h);
printf("fangchengjie\n");
do
{
x1=h;
y1=fot(h);
y2=f1(x1);
h=x1-y1/y2;
}
while (fabs(h-x1)>=1e-5);
printf("A root is %f\n",x1);
o=x1;
return o;
}
看看这个是不是你想要的结果。
有几个语法错误,还有一个宏的问题。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询