高手们看下我的C程序有什么问题啊

来源:百度知道 编辑:UC知道 时间:2024/05/26 17:53:32
#include <stdio.h>
#include <math.h>
#define g 9.8
#define r 1.0675
float a,b,c,d,v;
fun(float a,float b,float c,float d,float v)
{
float x,h1,h2,t1,t2;
t1=(v*sin(d))/g;
h1=v*v*sin(d)*sin(d)/(2*g);
h2=h1+c*sin(d)+b*0.85;
t2=sqrt(2*h2/g);
x=v*cos(d)*(t1+t2)+a+c*cos(d)-r;
return x;
}
main()
{
float h1,h2,t1,t2;
printf("输入运动员身高:");
scanf("%f",&b);
printf("输入运动员臂长:");
scanf("%f",&c);
printf("输入运动员手臂仰角:");
scanf("%f",&d);
printf("输入投掷点与水平直径垂直距离:");
scanf("%f",&a);
printf("输入投掷速度:");
scanf("%f",&v);
printf("%f",fun(a,b,c,d,v));
}

最后输出的结果时0.00000啊
能不能说清楚一点 最好告诉我怎么改

这样就行了:
#include <stdio.h>
#include <math.h>
#define g 9.8
#define r 1.0675
float a,b,c,d,v;
float fun(float a,float b,float c,float d,float v) /*加float/*
{
float x,h1,h2,t1,t2;
t1=(v*sin(d))/g;
h1=v*v*sin(d)*sin(d)/(2*g);
h2=h1+c*sin(d)+b*0.85;
t2=sqrt(2*h2/g);
x=v*cos(d)*(t1+t2)+a+c*cos(d)-r;
return x;
}
void main()
{
float a,b,c,d,v;/*变量名修改*/
printf("输入运动员身高:");
scanf("%f",&b);
printf("输入运动员臂长:");
scanf("%f",&c);
printf("输入运动员手臂仰角:");
scanf("%f",&d);
printf("输入投掷点与水平直径垂直距离:");
scanf("%f",&a);
printf("输入投掷速度:");
scanf("%f",&v);
printf("%f",fun(a,b,c,d,v));
}

全局变量和局部变量乱用一气。修改如下:
#include <stdio.h>
#include <math.h>
#define g 9.8
#define r 1.0675
f