添加两个整数变量并显示输出 C
Adding two integer variables and displaying output C
我正在尝试用 C 语言创建一个简单的程序,它添加了两个数字变量。
我试图验证输入,但现在程序不显示答案,只是 0.000000000
#include<stdio.h>
int input, temp, status, numberOne, numberTwo, ans;
int main(void){
first();
second();
add();
}
int first(void){
printf("Please enter your number: ");
status = scanf("%d", &input);
while(status!=1){
while((temp=getchar()) != EOF && temp != '\n');
printf("Invalid input... please enter a number: ");
status = scanf("%d", &input);
}
numberOne = input;
}
int second(void){
printf("Please enter your second number: ");
status = scanf("%d", &input);
while(status!=1){
while((temp=getchar()) != EOF && temp != '\n');
printf("Invalid input... please enter a number: ");
status = scanf("%d", &input);
}
numberTwo = input;
}
int add(void){
ans=numberOne+numberTwo;
printf("The answer is %f", ans);
}
根据第 7.21.6.1 章,C11
标准第 9 段
If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined.
在您的代码中,ans
的类型为 int
。您必须使用 %d
格式说明符,而不是 %f
.
printf("The answer is %f", ans);
应该是
printf("The answer is %d", ans);
printf("The answer is %f", ans);
应该是
printf("The answer is %d", ans);
%d
是打印整数的正确格式说明符,使用错误的格式说明符会导致未定义的行为,这就是您所看到的
结果应该是 %d
格式说明符而不是 %f
printf("The answer is %d", ans);
注意:- %d
格式说明符用于整数,%f
通常用于浮点数。
在您的情况下,您将使用以下代码获取两个输入整数:
status = scanf("%d", &input);
所以这里的%d
表示这两个数是整数。现在添加它们将给出整数结果。因此,您应该只使用 %d 来获得结果。
我正在尝试用 C 语言创建一个简单的程序,它添加了两个数字变量。
我试图验证输入,但现在程序不显示答案,只是 0.000000000
#include<stdio.h>
int input, temp, status, numberOne, numberTwo, ans;
int main(void){
first();
second();
add();
}
int first(void){
printf("Please enter your number: ");
status = scanf("%d", &input);
while(status!=1){
while((temp=getchar()) != EOF && temp != '\n');
printf("Invalid input... please enter a number: ");
status = scanf("%d", &input);
}
numberOne = input;
}
int second(void){
printf("Please enter your second number: ");
status = scanf("%d", &input);
while(status!=1){
while((temp=getchar()) != EOF && temp != '\n');
printf("Invalid input... please enter a number: ");
status = scanf("%d", &input);
}
numberTwo = input;
}
int add(void){
ans=numberOne+numberTwo;
printf("The answer is %f", ans);
}
根据第 7.21.6.1 章,C11
标准第 9 段
If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined.
在您的代码中,ans
的类型为 int
。您必须使用 %d
格式说明符,而不是 %f
.
printf("The answer is %f", ans);
应该是
printf("The answer is %d", ans);
printf("The answer is %f", ans);
应该是
printf("The answer is %d", ans);
%d
是打印整数的正确格式说明符,使用错误的格式说明符会导致未定义的行为,这就是您所看到的
结果应该是 %d
格式说明符而不是 %f
printf("The answer is %d", ans);
注意:- %d
格式说明符用于整数,%f
通常用于浮点数。
在您的情况下,您将使用以下代码获取两个输入整数:
status = scanf("%d", &input);
所以这里的%d
表示这两个数是整数。现在添加它们将给出整数结果。因此,您应该只使用 %d 来获得结果。