Funzioni linguaggio c

di il
6 risposte

Funzioni linguaggio c

All'uni abbiamo fatto una lezione sulle funzioni ma a giudicare dagli esercizi ci ho capito ben poco quindi volevo chiedere e potreste aiutarmi a capire cosa sbaglio.
#include <stdio.h>
#include <stdlib.h>
int acquisisciNumero (void);
int randrange(int, int);
void stampaNumero(int);
int main(){
    /**
    Scrivere la funzione randrange(min, max) che rende un numero casuale compreso tra min e max
    **/
    int max, min;
    int numero;
    max = acquisisciNumero();
    min = acquisisciNumero();

    numero = randrange(max, min);

    stampaNumero(numero);
    return 0;
}
int acquisisciNumero (void){
    int var = 0;
    printf("Inserire numero: ");
    scanf("%d", &var);
    return var;
}
int randrange(int x, int y){
    int var1 = 0, var2 = 0;
    return var1+rand()%var2-var1+1;
}
void stampaNumero(int x){
    int numero = 0;
    printf("\nNumero = %d", numero);
}

6 Risposte

  • Re: Funzioni linguaggio c

    quindi volevo chiedere e potreste aiutarmi a capire cosa sbaglio.
    Veramente dovresti spiegare tu quello che vuoi fare e che errore incontri.
    Così su due piedi posso dire che l'implementazione della funzione randrange() è errata, supponendo che debba restituire un valore casuale all'interno di un intervallo: la funzione riceve due parametri (che io chiamerei min e max, e non x e y) che non vengono assolutamente presi in considerazione, anzi vengono utilizzate due variabili locali fisse a 0...
  • Re: Funzioni linguaggio c

    candaluar ha scritto:


    quindi volevo chiedere e potreste aiutarmi a capire cosa sbaglio.
    Veramente dovresti spiegare tu quello che vuoi fare e che errore incontri.
    Così su due piedi posso dire che l'implementazione della funzione randrange() è errata, supponendo che debba restituire un valore casuale all'interno di un intervallo: la funzione riceve due parametri (che io chiamerei min e max, e non x e y) che non vengono assolutamente presi in considerazione, anzi vengono utilizzate due variabili locali fisse a 0...
    Si ma non avendo capito minimamente l'argomento non so nemmeno dirti quale sia l'errore specifico visto che il compilatore non mi da nem error ne warning
  • Re: Funzioni linguaggio c

    Ok, ho corretto alcune cose e sono arrivato a capire che il problema è nella funzione "stampaNumero", infatti se uso semplicemente una printf funziona
  • Re: Funzioni linguaggio c

    dirti quale sia l'errore specifico visto che il compilatore non mi da nem error ne warning
    Tu hai chiesto di aiutarti a capire cosa sbagli: vuol dire che ti sei accorto di un errore o di un comportamento anomalo: ci puoi spiegare?
    Ok, ho corretto alcune cose e sono arrivato a capire che il problema è nella funzione "stampaNumero", infatti se uso semplicemente una printf funziona
    Se per te è risolto va bene. magari posta il codice corretto.
  • Re: Funzioni linguaggio c

    Molto probabilmente questa
    
    void stampaNumero(int x){
        int numero = 0;
        printf("\nNumero = %d", numero);
    }
    doveva banalmente essere
    
    void stampaNumero(int x){
        printf("\nNumero = %d", x);
    }
    
  • Re: Funzioni linguaggio c

    Dal codice che hai scritto vedo che hai difficoltà con i concetti come lo scope di una variabile ed il passaggio di parametri ad una funzione. Prima di postare una discussione come questa penso sarebbe più sensato che tu capisca questi concetti.
Devi accedere o registrarti per scrivere nel forum
6 risposte