[opgelost] C functies

  • Onderwerp starter Onderwerp starter lamko
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

lamko

Gebruiker
Lid geworden
5 jun 2011
Berichten
8
Ik ben momenteel deze course aan het volgen http://cs50.tv/2010/fall
En ben nu met een opdracht bezig waar ik nu al één variabele naar een functie stuur maar hoe doe ik dit met de andere 3 variabelen die ook die functie moeten gebruiken.

Code:
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>

float
display(float MF);

int main()
{
    printf("M spotting F:");
    float MF = GetFloat();
    printf("F spotting M:");
    float FM = GetFloat();
    printf("F spotting F:");
    float FF = GetFloat();
    printf("M spotting M:");
    float MM = GetFloat();
    printf("\n");
    printf("Who is spotting whom\n");
    printf("\n");
    printf("M spotting F\n");
    display(MF);

    return 0;
}

float display(float MF)
{
    int result = (int)MF * 8; // 1% van de 80 karakters
    int i;
    for ( i = 1; i <= result ; i++ )
    {
        printf("#");
    }

}
 
Laatst bewerkt:
Ik begrijp de vraag niet helemaal wil je 3x display aanroepen? of een nieuwe display functie maken waar je 3 variabelen naar wil sturen?

voor optie 1:

display(FM)
display(FF)
display(MM)
 
Laatst bewerkt:
Maar dan zit ik nog met de MF in de tweede regel van de functie.
int result = (int)MF, hoe kan ik ervoor zorgen dat die variabele wordt vervangen door FF
 
Dat hoeft niet. Een variabele gedefineerd in een routine anders dan de huidige routine heeft NIETS met de huidige variabele te maken.

Code:
int a = 1;

int Functie1(void)
{
int a =2;
return a;
}
int Functie2(void)
{
int a =3;
return a;
}

Code:
show a // geeft 1
show functie1() // geeft 2
show functie2() // geeft 3
show a //geeft nog steeds 1, de "a"s in de andere functies zijn lokaal in die functie

de variabele FM gedefineerd in je tweede routine is dus iets anders dan in je eerste routine,
 
Laatst bewerkt:
Bedankt het kwartje is gevallen ! En dat het ook zo simpel was :)

Code:
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>

void
display(float MF);

int main()
{
    printf("M spotting F:");
    float MF = GetFloat();
    printf("F spotting M:");
    float FM = GetFloat();
    printf("F spotting F:");
    float FF = GetFloat();
    printf("M spotting M:");
    float MM = GetFloat();
    printf("\n");
    printf("Who is spotting whom\n");
    printf("\n");
    printf("M spotting F\n");
    display(MF);
    printf("F spotting M\n");
    display(FM);
    printf("F spotting F\n");
    display(FF);
    printf("M spotting M\n");
    display(MM);
    return 0;
}

void display(float input)
{
    int result = (int)input * 8; // 1% van de 80 karakters
    int i;
    for ( i = 1; i <= result ; i++ )
    {
        printf("#");
    }
    printf("\n");
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan