关于C语言几个程序的问题

//求汽车平均速度#include<stdio.h>voidmain(){intqh(intx,inty);//对被调用qt函数的声明intH,h;//定义变量float... //求汽车平均速度
#include <stdio.h>
void main()
{
int qh(int x,int y); //对被调用qt函数的声明
int H,h; //定义变量
float v,L,M,m,s1,s2,T; //定义变量
printf("请输入里程数,单位为米\n"); //显示输入变量
scanf("&f",&L); //输入变量
printf("请输入出发时间,格式为 时,分,秒\n"); //显示输入变量
scanf("%d,%d,%d",&H,&M,&s1); //输入变量
printf("请输入到达时间,格式为 时,分,秒\n"); //显示输入变量
scanf("%d,%d,%d",&h,&m,&s2); //输入变量
T=(float)(qh(H,h))+(m-M)*60+s2-s1; //对T赋值
v=L/T;
}
int qh(int x,int y)
{
int z;
if(x>y)z=(24-x+y)*3600;
else z=(x-y)*3600;
return(z);
}

//求一元2次方程根的程序
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c;
printf("标准一元2次方程形式为axx+bx+c=0\n请输入其系数,表示为 a,b,c\n");
scanf("%f,%f,%f,",&a,&b,&c);
float x1,x2,D;
D=b*b-4*a*c;
if(D=0)
{
x1=x2=(-b)/(2*a);
printf("x1=x2=%f",x1);
}
if(D>0)
{
x1=((-b)+sqrt(D))/(2*a);
printf("x1=%f,x2=%f",x1,x2);
}
else
{
printf("该方程无实数根\n");
}
}

两个程序都可以运行,但是计算时
求汽车速度的程序只能得出v=0.000000
计算根的程序只能得出:该方程无实数根

希望明白人解答一下 本人初学者.
展开
 我来答
匿名用户
推荐于2017-09-25
展开全部
第一个程序(修改两处):

//---------------------------------------------------------------------------

#include <stdio.h>
void main()
{
int qh(int x,int y);
int H,h;
float v,L,M,m,s1,s2,T;
printf("请输入里程数,单位为米\n");
scanf("%f",&L); //注意这里
printf("请输入出发时间,格式为 时,分,秒\n");
scanf("%d,%d,%d",&H,&M,&s1);
printf("请输入到达时间,格式为 时,分,秒\n");
scanf("%d,%d,%d",&h,&m,&s2);
T=(float)(qh(H,h))+(m-M)*60+s2-s1;
v=L/T;
}
int qh(int x,int y)
{
int z;
if(x>y)z=(24-x+y)*3600;
else z=(y-x)*3600; //注意这里
return(z);
}

//---------------------------------------------------------------------------

第二个程序(修改4处):
//---------------------------------------------------------------------------

#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c;

float x1,x2,D; /*注意这里,变量声明应该放在执行语句之前*/

printf("标准一元2次方程形式为axx+bx+c=0\n请输入其系数,表示为 a,b,c\n");
scanf("%f,%f,%f,",&a,&b,&c);
D=b*b-4*a*c;
if(D==0) /*注意这里*/
{
x1=x2=(-b)/(2*a);
printf("x1=x2=%f",x1);
}
else if(D>0) /*注意这里*/
{
x1=((-b)+sqrt(D))/(2*a);
x2=((-b)-sqrt(D))/(2*a); /*注意这里*/
printf("x1=%f,x2=%f",x1,x2);
}
else
{
printf("该方程无实数根\n");
}
}

//---------------------------------------------------------------------------
蓝莓math
2008-10-23 · TA获得超过519个赞
知道小有建树答主
回答量:466
采纳率:0%
帮助的人:241万
展开全部
1. scanf("%f",&L); //输入变量
2. if(D==0) /*是==,不是=*/
就上面两个地方粗心了,程序写的不错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaolvfeidao
2008-10-23 · TA获得超过141个赞
知道答主
回答量:108
采纳率:0%
帮助的人:65.9万
展开全部
第一个 下面几行格式控制有误:
scanf("%f",&L); //输入变量
printf("请输入出发时间,格式为 时,分,秒\n"); //显示输入变量
scanf("%d,%f,%f",&H,&M,&s1); //输入变量
printf("请输入到达时间,格式为 时,分,秒\n"); //显示输入变量
scanf("%d,%f,%f",&h,&m,&s2); //输入变量
无输出函数 printf("平均速度=%f",&V);
自定义函数中 else z=(x-y)*3600; 应为 else z=(y-x)*3600;
建议H,h也定义成实型。并加入判定hH是否小于24大于0,mMs1s2是否小于60大于0的y语句。
第二个 第二个if处缺少 x2=((-b)-sqrt(D))/(2*a);
第二个if前加else,后一个else语句不用加花括号。应该是if(D==0);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永恒心爱
2008-10-23 · 超过12用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
if(D=0)
{
x1=x2=(-b)/(2*a);
printf("x1=x2=%f",x1);
}
else if(D>0)
{
x1=((-b)+sqrt(D))/(2*a);
printf("x1=%f,x2=%f",x1,x2);
}
else
{
printf("该方程无实数根\n");
}
}

少了个 else
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1053301424
2008-10-25 · TA获得超过158个赞
知道答主
回答量:435
采纳率:100%
帮助的人:147万
展开全部
我刚学,不会这个,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式