c语言新手第二个scanf不执行的问题

时间:2021-11-01 02:01:33

#include "stdio.h"
#include "stdlib.h"

//float tol_traveled(float beg_od, float end_od);
float reimbursment(float beg_od, float end_od);

int main(){
float beg_od, end_od;
printf("MILEAGE REIMBURSEMENT CALCULATOR\n");
printf("Enter beginning odometer reading=>");
scanf("&f", beg_od);
printf("\n");
printf("Enter ending odometer reading=>");
scanf("&f", end_od);
printf("\n");
printf("You traveled %.1f miles. At $0.35 per mile,\n", beg_od - end_od);
printf("your reimbursment is %.2f.\n", reimbursment(beg_od, end_od));
system("PAUSE");
return 0;
}
/*float tol_traveled(float beg_od, float end_od){
return end_od - beg_od;
}*/
float reimbursment(float beg_od, float end_od){
return (beg_od - end_od) * 0.35;
}

运行到第二个scanf的时候直接跳过了然后最后输出的都是-0.0 -0.00。。。。。求解

7 个解决方案

#1


scanf(" %f",  &beg_od);
scanf(" %f",  &end_od);

#2


scanf("%f",&beg_od);
你的格式写粗了!

#3


引用 1 楼  的回复:
scanf("%f", &beg_od);
scanf("%f", &end_od);


++

#4


引用 1 楼  的回复:
scanf("%f", &beg_od);
scanf("%f", &end_od);

++

#5


printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

#6


要多看书啊,你这个有些粗心啊,应该说要是写成这样,你的代码应该有警告啊,做程序首先不但要该对所有的错误,并且要改所有的警告啊。加油啊!书中自有黄金屋啊。

#7


该回复于2012-08-29 08:31:15被版主删除

#1


scanf(" %f",  &beg_od);
scanf(" %f",  &end_od);

#2


scanf("%f",&beg_od);
你的格式写粗了!

#3


引用 1 楼  的回复:
scanf("%f", &beg_od);
scanf("%f", &end_od);


++

#4


引用 1 楼  的回复:
scanf("%f", &beg_od);
scanf("%f", &end_od);

++

#5


printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

#6


要多看书啊,你这个有些粗心啊,应该说要是写成这样,你的代码应该有警告啊,做程序首先不但要该对所有的错误,并且要改所有的警告啊。加油啊!书中自有黄金屋啊。

#7


该回复于2012-08-29 08:31:15被版主删除