为什么不循环?不计算呢?该如何处理
为什么不循环?不计算呢?C/C++ code#include stdio.hint main(){float a,bfloat numprintf(请输入两个
为什么不循环?不计算呢?
C/C++ code#include <stdio.h>int main(){ float a,b; float num; printf("请输入两个数字,我们将计算(a-b)/ (a*b)\n"); printf("(enter 'q' to quit):\n"); while(scanf("%f %f",&a,&b) == 1) { num = (a-b) / (a*b); printf("您要计算的结果是:%.2f\n",num); } return 0;}
[解决办法]scanf返回接收到的变量值的个数
接收到了两个变量,返回值为2,当然不等于1了!当然不循环了
[解决办法]scanf
语法:
#include <stdio.h>
int scanf( const char *format, ... );
scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. 它和printf()有点类似. format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始,如下:
scanf()读取匹配format(格式)字符串的输入. 当读取到一个控制字符, 它把值放置到下一个变量. 空白(tabs, 空格等等)会跳过. 非空白字符和输入匹配, 然后丢弃. 如果是一个在%符号和控制符间的数量, 那么只有指定数量的字符转换到变量中. 如果scanf()遇到一个字符集(用%[]控制字符表示), 那么在括号中的任意字符都会读取到变量中.
scanf()的返回值是成功赋值的变量数量, 发生错误时返回EOF.
******************
因为scanf()函数返回的是成功赋值的变量个数,你要输入两个变量,但是判断条件是返回值是否等于1,所以条件不满足,不进入循环。。。。
希望对你有帮助。。。