Jak uwzględnić 0 przy a!=0 w C

0

Witam, dopiero zaczynam programować ,także proszę o wyrozumiałość. Mam problem z uwzględnieniem 0 jako dobry input. Program ma prosić o dwie liczby i podać ich sume, a przy wpisaniu błędnych danych wyświetlić komunikat Incorrect input, Także po wpisaniu liter lub innych znaków program działą normalnie ale przy wpisaniu 0 , otrzymuje incorrect input.

#include <stdio.h>

int main()

{
    int a=0;
    int b=0;

    printf ("podaj 2 liczby calkowite oddzielone spacja: ");
    scanf ("%d %d",&a, &b);

    if(a&&b !=0)
    {printf ("%d",a+b);}

    else

    {printf("Incorrect input");
    return 1;}

    return 0;

}
2

Sprawdzaj wartość zwracaną scanf, a nie wartości wczytane.

scanf() zwraca liczbę poprawnie wczytanych danych:

if(scanf("%d %d", &a, &b) == 2) {
    // ok
} else {
    // error
}
0
if(a&&b !=0)

A taki zapis to jest poprawny?

3
Serechiel napisał(a):

if(a&&b !=0)

A taki zapis to jest poprawny?

Przez przypadek bo przez przypadek, ale tak :​D Jest równoważny if(a && (b != 0)) czyli if(a && b)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0