Zły wynik w programie wykorzystującym scanf

0
#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 ?

1

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

0

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

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...

0

Ahhh, przepraszam, juz mam dzieki :)

0

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

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