今天在学习C语言循环时遇到的问题
2016-01-31 15:35
369 查看
今天在学习C语言的循环 做《C primer plus》第六章的课后习题的时候,课后习题有这样一道题:编写一个程序,要求输入两个浮点数,然后打印出用两者的差值除以二者的成绩所得的结果在用户键入非数字的输入之前程序循环处理每对输入值。
没有好好看书的我就大概的码了一段代码:
没有好好看书的我就大概的码了一段代码:
#include <stdio.h> int main() { float a,b; float sum; printf("请输入两个浮点数:\n"); scanf("%f%f",&a,&b); while(scanf("%f%f",&a,&b)==2) { c=(a-b); d=(a*b); sum = c/d; printf("sum=%f\n",sum); printf("请继续输入,输入非数字退出:\n"); scanf("%f%f",&a,&b); } return 0;}运行后发现这段代码必须要输入四个浮点数后才能算出值,在经过网上的查询后我发现,这段代码等于是要求输入了两次a,b的值,其实只需要while循环里的scanf函数就可以了,于是我进行修改:
#include <stdio.h> int main() { float a,b; float c,d; float sum; printf("请输入两个浮点数:\n"); while(scanf("%f%f",&a,&b)==2) { c=(a-b); d=(a*b); sum = c/d; printf("sum=%f\n",sum); printf("请继续输入,输入非数字退出:\n"); } return 0; }程序就正常的完成了题目的要求,我是这样理解的:while里的scanf函数既判断了是否输入了两个浮点数,又可以接收用户输入的两个浮点数。如果理解有误,有问题希望大家指正。
相关文章推荐
- Linux C函数参考手册(PDF版)
- C#中循环语句:while、for、foreach的使用
- Lua教程(十七):C API简介
- Lua中数字for循环实例
- 简单谈谈lua和c的交互
- Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
- Shell中的for和while循环详细总结
- C#实现打造气泡屏幕保护效果
- 使用C#代码获取存储过程返回值
- C/C++数据对齐详细解析
- 利用C语言来求最大连续子序列乘积的方法
- 字符串的组合算法问题的C语言实现攻略
- C 语言基础教程(我的C之旅开始了)[三]
- 学习C和C++的9点经验总结
- C++中的extern “C”用法详解
- C 语言基础教程(我的C之旅开始了)[七]
- 最大子矩阵问题实例解析
- C语言循环结构与时间函数用法实例教程
- C字符串操作函数实现方法小结