Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

deklrairanje globalne varijable

[es] :: C/C++ programiranje :: deklrairanje globalne varijable

[ Pregleda: 1731 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

timi263057

Član broj: 45947
Poruke: 241
*.xnet.hr.



+1 Profil

icon deklrairanje globalne varijable13.04.2011. u 13:47 - pre 158 meseci
Code:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

void case1 ( double suma, double br)
{
      double i=1,zbroj=0,z,z2;
     int x;
     br=0;
         do
        {
        br++;
        zbroj=zbroj+1.0/i;
        i++;
        z=zbroj;
        z=z*100;
        x=int(z);    
        z2=double(x)/100;
        }
        while(int (z2)!=suma);
        printf("Potrebno je %.2lf razlomaka\n\n",br);
     }

void case2 (int clan_niza)
{
      double sum=0,i=0;
        do
            {    
            i++;
            sum=sum+1.0/i;
            
            }
            while(i!=clan_niza);
      printf("\nZbroj prvih %d clanova niza je %lf\n\n",clan_niza,sum);
}


int main()
{
    double suma,br;
    int odabir,clan_niza;


            printf("\n\nUnesite do koje sume treba doci: ");
            scanf("%lf",&suma);
            case1(suma,br);



    

    getch();
    
}


Zanima me kako da vrijednost koju sam dobio povečavajući varijablu 'br' sačuvam tako da je mogu koristiti u main i drugim funkcijama?
 
Odgovor na temu

miniplazma

Član broj: 240037
Poruke: 68
*.crnagora.net.



Profil

icon Re: deklrairanje globalne varijable13.04.2011. u 21:39 - pre 158 meseci
Inicijalizuj je u main funkciji
int br = 0;

I predaj je po referenci funkciji case1
Tvoj kod će onda izgledati ovako:

Code:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

void case1 ( double suma, double* br)
{
      double i=1,zbroj=0,z,z2;
     int x;
    // br=0; // jer si vec inicijaliyovao u main-u
         do
        {
        *br = *br +1 ;//br++;
        zbroj=zbroj+1.0/i;
        i++;
        z=zbroj;
        z=z*100;
        x=int(z);    
        z2=double(x)/100;
        }
        while(int (z2)!=suma);
        printf("Potrebno je %.2lf razlomaka\n\n",br);
     }

void case2 (int clan_niza)
{
      double sum=0,i=0;
        do
            {    
            i++;
            sum=sum+1.0/i;
            
            }
            while(i!=clan_niza);
      printf("\nZbroj prvih %d clanova niza je %lf\n\n",clan_niza,sum);
}


int main()
{
    double suma; // br ti nije tipa double
    int odabir,clan_niza;

      int br = 0;

            printf("\n\nUnesite do koje sume treba doci: ");
            scanf("%lf",&suma);
            //case1(suma,br);  kada predajes po referenci, predajes adresu te promjenljive,pa ce ti poziv izgledati ovako
           case1(suma,&br);
           return 0;
    
}



Nije ti potrebna globalna promjenljiva.Inače ti je deklarisanje globalnih promjenljivih "nezdrava navika" kod programiranja.
 
Odgovor na temu

[es] :: C/C++ programiranje :: deklrairanje globalne varijable

[ Pregleda: 1731 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.