Problem sa funkcijama programa u C

Problem sa funkcijama programa u C

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Ovako.. Radim sada funkcije u C-u ali ih uopste ne razumem. Ja znam kao se definisu i to, ali ne razumem sta rade. Evo jedan primer:

  1. void string(int n, char ch)
  2. {
  3.       while(n-- > 0)
  4.            putchar(ch);
  5. }


Sta radi ovo telo funkcije i koju brojnu vrednost imaju n i ch kada se ovako definisu u funkciji. To ne razumem. Kako zna sta da stavi u telo funkcije kada nezna koja je brojna vrednost ovih 2 promenljivi u funkciji(n i ch).

Hvala unapred!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

Funkcije mozes defniisati na 2 nacina
1.

  1. #include <stdio.h>
  2. int zbir(int a, int b)
  3. {
  4.     int c;
  5.     c = a + b;
  6.     return c;
  7. }
  8.  
  9. int main(void)
  10. {
  11.     int a,b,c;
  12.     scanf("%d %d",&a,&b);
  13.     c = zbir(a,b);
  14.     printf("%d\n",c);
  15.     system("PAUSE");
  16.     return 0;
  17. }


2.
  1. #include <stdio.h>
  2.  
  3. int zbir(int a,int b);  //prototip funkcije
  4.  
  5. int main(void)
  6. {
  7.     int a,b,c;
  8.     scanf("%d %d",&a,&b);
  9.     c = zbir(a,b);
  10.     printf("%d\n",c);
  11.     system("PAUSE");
  12.     return 0;
  13. }
  14.  
  15. int zbir(int a,int b)
  16. {
  17.     int c;
  18.     c = a + b;
  19.     return c;
  20. }


To su dva nacina za deklarisanje funckije.
Vrednsti (parametri ili argumenti) koje prosledjues funkciji moras prvo da smestis u promenljive pa da te promenljive prosledis funkciji.



offline
  • Pridružio: 10 Mar 2009
  • Poruke: 101
  • Gde živiš: Podgorica

Tvoja funkcija ce na ekranu da odstampa neki karakter tacno n puta.
Promenljive ch i n su argumenti i njih predajes prilikom poziva funkcije.
Probaj sledeci kod:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void string(int n, char ch)
  5. {
  6.       while(n-- > 0)
  7.            printf("%c", ch); // Vise volim da koristim printf od putchar :)
  8. }
  9.  
  10. int main()
  11. {
  12.     string(10, 'M');
  13.     return 0;
  14. }

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Hvala vam obojici, sada razumem, mogu se snaci u kodovima koje imam i knjizi. Ali, mozes li mi objasniti sta znaci i zasta sluzi ovo postfiksno dekrementiranje (x--)?

Hvala unapred! Very Happy

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

Napisano: 02 Okt 2012 15:09

x = 10;
x--; //x je i dalje 10
x; //je sada 9

U gornjem primeru imas funkciju string koja ispisuje 10 slova M taj postfix operator umanji za 1 posto while petlja provrti printf funckiju i zato imas 10 m da je bilo -- pre npr --x ispisalo bi ti samo 9 slova M zato sto ga je odma umanjilo za 1.

Dopuna: 02 Okt 2012 15:12

To nebi imalo veze da funkcija koristi do{}while(); petlju

  1. #include <stdio.h>
  2.  
  3. void string(int n, char ch)
  4. {
  5.       do
  6.       {
  7.            printf("%c", ch); // Vise volim da koristim printf od putchar :)
  8.       }while(--n>0); // moze da bude i n-- isti je rezulat
  9. }
  10.  
  11. int main()
  12. {
  13.     string(10, 'M');
  14.     return 0;
  15. }

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Hvala ti puno. Hvala svima. Ziveli Ziveli Ziveli

Ko je trenutno na forumu
 

Ukupno su 882 korisnika na forumu :: 46 registrovanih, 4 sakrivenih i 832 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Apok, Asteker, babo5, boromir, DejanCG, dragoljub11987, feanor, Feller, HogarStrashni, Igorkg77, ILGromovnik, Kenanjoz, krkalon, Kubovac, kybonacci, laki_bb, m0nstrum_, mainstream, mercedesamg, miki kv, mikki jons, MilosKop, mladen.zovko, niksa517, pavlepopic, PrincipL, rakivan, Razdroid, S94, sabros, SamostalniReferent, sekretar, Shinobi, shlauf, Sićko, Srki98, stankolich, Str2022, travisrise, TRAVUNIJA, ulogovan, Webb, wizzardone, wolf431, YAVNANA, yiyi