Zły wynik w programie wykorzystującym scanf

Zły wynik w programie wykorzystującym scanf
US
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 172
0
Kopiuj
#include <stdio.h>

main(){
  printf("Podaj dwie liczby rzeczywiste: \n");
  int i1, i2;
  int i3 = i1 + i2;
  scanf("%d %d", i1, i2);
  printf("%d", i3);
  return 0;
}

chcialbym zapytac co jest zle w scanf ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

To że nie przeczytałeś w dokumentacji jakie parametry przyjmuje scanf.
http://www.cplusplus.com/reference/cstdio/scanf/

US
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 172
0

ahh juz wiem, zapomnialem o &, dzieki. ale wynik cos zly, dlaczego ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

Bo wykonujesz obliczenia zanim wczytałeś dane...
Piszesz w języku imperatywnym i kod jest wykonywany krok po kroku. To:
int i3 = i1 + i2; nie jest funkcja tylko wykonanie konkretnego obliczenia na konkretnych wartościach. Ewaluacja jest gorliwa, tzn wykonuje się tam gdzie ją umieścisz w kodzie.
Istnieją języki programowania z tzw leniwą ewaluacją gdzie następuje ona dopiero tam gdzie jest potrzebna...

US
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 172
0

Ahhh, przepraszam, juz mam dzieki :)

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0

włącz sobie opcję -Wall bo kompilator od razu wykrywa ten błąd:
http://melpon.org/wandbox/permlink/oJSUveCRs0OwU6EL

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.