c - 当值为负时不要打印消息
问题描述
"The biggest integer is:"
当我输入负值时,我不想打印。但是,当我只想打印一个或另一个时,我的程序会打印这两个语句。我想将其作为do
-while
声明。请帮忙。
#include <stdio.h>
int main() {
int biggestnum;
int i;
printf("Please enter an integer:");
scanf("%d", &biggestnum);
if (biggestnum < 0) {
printf("Didn't give me any data, goodbye.");
} else
do {
printf("Please enter an integer:");
scanf("%d", &i);
if (i >= 0)
if (i > biggestnum) {
biggestnum = i;
}
} while (i >= 0);
printf("The biggest integer is: %d\n", biggestnum);
return (0);
}
解决方案
您需要{}
为您的 else 语句添加大括号,否则在两者之后,if (biggestnum<0)
并且else statement
(无论哪一个为真)您将转到这一行printf("The biggest integer is: %d\n", biggestnum);
,然后return 0
.
看
int main() {
int biggestnum;
int i;
printf("Please enter an integer:");
scanf("%d", &biggestnum);
if (biggestnum < 0) {
printf("Didn't give me any data, goodbye.");
}
else
{
do {
printf("Please enter an integer:");
scanf("%d", &i);
if (i >= 0)
if (i > biggestnum) {
biggestnum = i;
}
} while (i >= 0);
printf("The biggest integer is: %d\n", biggestnum);
}
return (0);
}
推荐阅读
- java - 客户端中的 Spring REST 自定义错误对象处理
- python - 从数组 MATLAB Poisson 中提取随机数
- xamarin - 将本地图像添加到 xamarin iOS 应用程序的最简单方法是什么?
- angular - Angular:自定义formControl上的指令导致错误
- python-3.x - Python语音识别命令
- log4j - log4j 1.2.12 以增量方式打印字符串:O
- javascript - 通过查找每行开头的第一个单词并删除文件的行来读取txt文件的每一行
- java - Intent java.lang.RuntimeException 问题:无法启动活动
- ios - 设备发布时应用安装失败
- tsql - 循环遍历行和爆炸日期范围