c - 下面的代码应该接受初始输入,并且应该继续要求输入,直到两个输入都从 0 到 2000
问题描述
下面的代码应该接受初始输入,并且应该继续询问输入,直到两个输入都从 0 到 2000,但只询问两者是否小于 0 或大于 2000
int main(){
float x;
int y;
scanf("%f",&x);
scanf("%d",&y);
while(!(x>0 && x<=2000) && !(y>0 && y<=2000)){
printf("invalid balance or initial amount\n");
printf("enter initial balance\n");
scanf("%f",&x);
printf("enter withdrawal amount\n");
scanf("%d",&y);
continue;
}
return 0;
}
解决方案
简单的答案:将中间更改&&
为||
:
while (!(x>0 && x<=2000) || !(y>0 && y<=2000)) {
或者,您可以使用等效的:
while (! ((x>0 && x<=2000) && (y>0 && y<=2000))) {
但是,我会清理一下,因为初始 scanf
调用 [在循环之前] 不会提示用户。所以,我稍微颠倒一下逻辑:
#include <stdio.h>
int
main(void)
{
float x;
int y;
while (1) {
printf("enter initial balance\n");
scanf("%f", &x);
printf("enter withdrawal amount\n");
scanf("%d", &y);
if (((x > 0) && (x <= 2000)) && ((y > 0) && (y <= 2000)))
break;
printf("invalid balance or initial amount\n");
}
printf("x=%g y=%d\n",x,y);
return 0;
}
推荐阅读
- python-3.x - API 更新后使用 tweepy 观看主题标签
- python - Python 单元测试自写的 API 模块 - 在单独的项目中更好?
- python - 当测试位于单独的文件夹中时使用 pytest
- python - IOError:[Errno 2] 从 Web 浏览器执行脚本时没有这样的文件或目录
- php - 如何从 php 中的输出 xml 结果访问属性和值
- package - Flutter iOS模拟器不读取包/可可豆荚
- javascript - JS缓存输入值(Laravel)
- c# - 从零开始索引
- awk - 如何将列与 awk 对齐
- docker - 使用 HTTPS/SSL 在 ASP.NET Core 2.x 和 Nginx 上编写 Docker