添加两个整数变量并显示输出 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 来获得结果。