Czy liczba jest całkowita

Czy liczba jest całkowita
bartek164
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 534
0

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

Kopiuj
#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");

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
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.

pingwindyktator
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1055
1

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

No to ma sens.

bartek164
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 534
0

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

pingwindyktator
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1055
2

jak chcesz wpisać 4.5 do zmiennej typu int?

bartek164
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 534
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

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Co rozumiesz przez "działa"?

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.