c - 如何评估C中的输入数据?

标签 c if-statement evaluate

您好,我在评估输入数据时遇到问题,首先我扫描一个整数值,如下所示:

scanf("%d", &vstup2)

然后我声明一个条件是否等于零,如下所示:

if (vstup2 == 0){
        printf ("Nedefinovany vysledek!\n");

但是当我向这个变量输入零时,它不会输出 printf 语句,而是输出这行代码:

Floating point exception: 8 

完整代码如下:

#include<stdio.h>

int main(void)
{
    int vstup1;
    int vstup2 = 0;
    int sucet = 0;
    int rozdil = 0;
    int soucin = 0;
    int podil = 0;

    float prumer = 0;

    printf("INPUT FIRST INTEGER\n");

    if (scanf("%d", &vstup1)&& (vstup1 < -10000 || vstup1 > 10000)) 
    {
        printf("WRONG INPUT\n");
        return 0;
    }


    printf("INPUT SECOND INTEGER\n");
    scanf("%d", &vstup2); 

    if (vstup2 <= -10000 || vstup2 >= 10000)    
    {
        printf("WRONG INPUT\n");
        return 0;
    }

    sucet = (vstup1 + vstup2);
    rozdil = (vstup1 - vstup2);
    soucin = (vstup1 * vstup2);
    podil =  (vstup1 / vstup2);
    prumer = ((vstup1 + vstup2)/2);

    printf("Desitkova soustava: %i  %i\n", vstup1, vstup2);
    printf("Sestnactkova soustava: %x %x\n", vstup1, vstup2);  
    printf("Soucet: %i + %i = %i\n",vstup1, vstup2, sucet);
    printf("Rozdil: %i - %i = %i\n",vstup1, vstup2, rozdil);
    printf("Soucin: %i * %i = %i\n",vstup1, vstup2, soucin);
    if (vstup2 != 0)
    {
        printf("Podil: %i / %i = %i\n",vstup1, vstup2, podil);
    }
    else 
    {
        printf("Nedefinovany vysledek!\n");
    }
    printf("Prumer: %0.1f \n",prumer);
    return 0;
}

最佳答案

您除以0,这就是您遇到的错误。你必须防范它。

关于c - 如何评估C中的输入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52802834/

相关文章:

执行两个条件的 PHP IF 语句

Ruby 默认赋值 ( ||= ) 与拯救错误

Java等价于iif函数

C# 评估字符串不起作用

opencv - FDDB评估代码

c - 如何获取函数的长度(以字节为单位)?

c - 在以下 C 程序中发现错误 - 如何纠正

Python 2.7 - 评估列表中的元素以在 for 循环中使用

c - 如何显示从文件中读取的分数

c++ - const 指针(与指向 const 对象的指针相反)有什么用?