Czy liczba jest całkowita

0

Nie wiem dlaczego, ale program nie działa prawidłowo(prawidłowo tylko dla znaków char)

#include <stdio.h>

int main(int argc, char* argv[]) {
  int x;
  if (!scanf("%d", x)) printf("liczba nie int");

  return 0;
}
 

Mam też 2 sposób sprawdzenia, ale też nie działa : if(x-(int)x ==0) printf("calkowita");

4

Ten program to UB (przekazujesz wartość do scanf, zamiast adresu), ale takie sprawdzanie nie ma sensu, bo int to liczba całkowita. Z definicji.

1

int x;
printf("liczba nie int");

No to ma sens.

0

hę? o co wam chodzi, jakby ktoś wpisał np 4.5, a czemu b) nie działa?

2

jak chcesz wpisać 4.5 do zmiennej typu int?

0

Mam już rozwiązanie, 1 działa. Trzabyło użyć & w składni instrukcji, Nie wiedziałem, że trzeba tam używać & ale nie ważne, Ale 2 dalej nie działa

0

Co rozumiesz przez "działa"?

Tutaj np. dla inputu 4.5 scanf zwraca 1, czyli wg twojego "sposobu" jest to liczba całkowita.

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