【发布时间】:2020-10-02 22:53:07
【问题描述】:
大部分都可以正常工作,但是,我注意到如果我尝试添加一个负整数,就会发生这种情况:
正确的输出行是: 请输入两个整数:负一+三=二 你的程序打印了这一行: 请输入两个整数:负三=二
我的“printf 否定”if 语句之后的 ifs 出于某种原因没有打印?
#include <stdio.h>
int main(void) {
int numOne;
int numTwo;
printf("Please enter two integers:");
scanf("%d%d", &numOne, &numTwo);
if (numOne >= -10 && numOne < 0) {
printf("negative");
}
if (numOne == 0) {
printf("zero + ");
}
if (numOne == 1) {
printf("one + ");
}
if (numOne == 2) {
printf("two + ");
}
if (numOne == 3) {
printf("three + ");
}
if (numOne == 4) {
printf("four + ");
}
if (numOne == 5) {
printf("five + ");
}
if (numOne == 6) {
printf("six + ");
}
if (numOne == 7) {
printf("seven + ");
}
if (numOne == 8) {
printf("eight + ");
}
if (numOne == 9) {
printf("nine + ");
}
if (numOne == 10) {
printf("ten + ");
} else if (numOne > 10 || numOne < -10) {
printf("%d + ", numOne);
}
if (numTwo >= -10 && numTwo < 0) {
printf("negative");
}
if (numTwo == 0) {
printf("zero");
}
if (numTwo == 1) {
printf("one");
}
if (numTwo == 2) {
printf("two");
}
if (numTwo == 3) {
printf("three");
}
if (numTwo == 4) {
printf("four");
}
if (numTwo == 5) {
printf("five");
}
if (numTwo == 6) {
printf("six");
}
if (numTwo == 7) {
printf("seven");
}
if (numTwo == 8) {
printf("eight");
}
if (numTwo == 9) {
printf("nine");
}
if (numTwo == 10) {
printf("ten");
} else if (numTwo > 10 || numTwo < -10) {
printf("%d = ", numTwo);
}
int total = numOne + numTwo;
if (total >= -10 && total < 0) {
printf(" = negative");
}
if (total == 0) {
printf(" = zero\n");
}
if (total == 1) {
printf(" = one\n");
}
if (total == 2) {
printf(" = two\n");
}
if (total == 3) {
printf(" = three\n");
}
if (total == 4) {
printf(" = four\n");
}
if (total == 5) {
printf(" = five\n");
}
if (total == 6) {
printf(" = six\n");
}
if (total == 7) {
printf(" = seven\n");
}
if (total == 8) {
printf(" = eight\n");
}
if (total == 9) {
printf(" = nine\n");
}
if (total == 10) {
printf(" = ten\n");
} else if (total > 10 || total < -10) {
printf(" = %d\n", total);
}
return 0;
}
【问题讨论】:
-
如果数字为负数,您需要在第一个
if内将其更改为正数,以使其余代码正常工作。 -
并传递自动标记:
printf("negative")在字符串末尾需要一个空格。 -
: 0 aa 那是一个非常有效的修复方法!!
标签: c if-statement