c语言新手第二个scanf不执行的问题
#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。。。。。求解
相关推荐
详解C语言中scanf函数使用的一些注意点
(一)基本介绍 Scanf是系统自带的函数,声明包含在stdio.h文件中,因此要是有该函数,必须加载#include<stdio>头文件。当执行到scanf函数时,程序就暂停等待用户输入,该函数只接受变量的地址,格式为&变量名。是一个阻塞式的函数,2用户输入完毕后,则将值赋值给变量,至此函数调用完毕。敲回车键告知计算机键入完毕。 (二)使用注意 ①. 使用scanf函数输入一个字符变量。Char a; scanf(“%c”,&a); ②. 同时输入多个值。Scanf(“%d,%d”,#1,num2); ③. Scanf(“%d\n”,&a);//在内部不能使用\n转义字符,否则没完
结合C语言缓冲区谈scanf()函数
scanf() 是带有缓冲区的。遇到 scanf() 函数,程序会先检查输入缓冲区中是否有数据: • 如果没有,就等待用户输入。用户从键盘输入的每个字符都会暂时保存到缓冲区,直到按下回车键,输入结束,scanf() 再从缓冲区中读取数据,赋值给变量。 • 如果有数据,哪怕是一个字符,scanf() 也会直接读取,不会等待用户输入
C语言中scanf函数使用需要注意的问题(绝对经典)
摘 要:本文从scanf 函数使用的多个方面(格式字符及其附加格式说明字符、输入数据的格式、格式说明的分隔符、输入项的使用、格式说明与输入项的对应)介绍scanf函数使用的方法及其注意事项,以使读者正确、有效地使用。 很经典的文章,看了这篇文档,以后就全面的了解scanf函数了。
C语言的 scanf 详细用法
scanf的用法,希望可以帮助有需的人...........
C语言清除scanf()缓存的案例讲解
又重新过一遍C语言,感觉每次重学C语言都有不同的感受,遇到了一个问题,就是scanf()这个问题,其实细究起来,也有很多可以值得深挖的,实际上每次细细的挖掘的话,都是对C语言的更透彻的认识. 那么下面我就对scanf()中清除输入缓冲区的方法讲解: 应用场景:我们使用多个scanf()的时候,如果输入缓冲区还有数据的话,那么scanf()就不会询问用户输入,而是直接就将输入缓冲区的内容拿出来用了,这就导致了前面的错误影响到后面的内容,为了隔离这种问题, 总的思想:通过各种方法将输入缓冲区的内容读出来. (1)清除缓存的函数是: void safe_flush(FILE *fp) { int


