gpt4 book ai didi

c - 如果首先输入 float ,但可以处理整数,为什么我的程序会跳到完成?

转载 作者:行者123 更新时间:2023-12-02 09:13:56 24 4
gpt4 key购买 nike

当我输入任何 float 作为第一个数字时,就会出现问题。其他一切都已完成,但输出看起来可能像是存储的内存地址?
如果我使用任何整数,程序就会正常工作。我希望程序将用户输入的任何数字转换为整数。
虽然我明确要求输入整数,但如果用户输入 2.2,我希望程序将其称为 2,然后继续要求他们的第二个输入。

#include <stdio.h>

int main(void)
{
// creating two variables
int firstNumber;
int secondNumber;

//asking user to input a number
printf("Enter your first integer value: ");
scanf("%d", &firstNumber);
printf("\nThe integer value you entered is %d.\n", firstNumber);

//asking user to enter another number
printf("\nEnter your second integer value: ");
scanf("%d", &secondNumber);
printf("\nThe second integer value you entered is %d.\n", secondNumber);

/* system("pause"); */
return 0;
}

最佳答案

因为第一个 scanf() 成功读取 float 的整数部分作为整数,然后第二个 scanf() 尝试读取另一个整数但失败,因为它运行到小数点。需要意识到的是 scanf()对于整数,当遇到非数字字符时将停止读取,并将该字符保留在输入流中。

关于c - 如果首先输入 float ,但可以处理整数,为什么我的程序会跳到完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49039779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com