Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Vettore in C

  1. #1

    Vettore in C

    Salve ragazzi,
    Studio al Poli a Torino e mi sto impratichendo con il linguaggio C ( I anno)...
    Dovrei scrivere un programma che calcoli, dato un vettore di 5 elementi, la media dei suoi elementi e quante volte un certo valore limite viene superato dagli elementi del vettore... fin qui tutto semplice, anzi, ma il problema è che non ho capito bene come passare un vettore ad una funzione! Perchè con le funzioni lo devo risolvere! Io ho scritto ciò:

    codice:
    double vectmedia (int, int);
    int limit(int, int, float);
    int main()
    {
        int v[5], i, s=0, d;
        float m, x;
        printf("Inserisci valori del vettore:\n");
        for(i=0; i<5; i++) {
            scanf("%d", &v[i]);
        }
        d = upperlimit(v, i, x);
        m = vectmedia(v, i);
        printf("Numero dei valori trovati superiori a %d trovati: %lf\n", x, d);
        printf("Media degli elementi: %lf", m);
        return 0;
    }
    
    
    int limit( int a[], int b, int c) {
        int flag =0,w;
        for(w=0; w<b-1; w++) {
            if( a[w]>c) {
                flag++;
            }
        }
        return flag;
    }
    double vectmedia(int a[],int b) {
        int somma=0, w;
        double media;
        for(w=0; w<b-1; w++) {
            somma=somma +a[w];
        }
        media = somma/(b-1);
        return media;
    }
    ma mi dice sempre alla riga int limit( int a[], int b, int c) che c'è un confictyn types for "limit"... cosa significa? Non me lo fa compilare!
    Ultima modifica di MItaly; 24-11-2015 a 22:28 Motivo: Aggiunti tag CODE, fix indentazione

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    All'inizio hai dichiarato

    int limit(int, int, float);

    e poi scrivi

    int limit( int a[], int b, int c)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Oddio XD ma è corretta come sintassi ? Adesso che torno lo provo... Grazie in anticipo ^^

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da Franzcecco Visualizza il messaggio
    Oddio XD ma è corretta come sintassi ?
    Che intendi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Che intendi?
    Intendo il passaggio del vettore alla funzione... il mio dubbio era quello...

  6. #6
    Comunque non va lo stesso, stesso errore... adesso ricopio il nuovo codice per sicurezza:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    double vectmedia (int, int);
    int limit(int, int, float);
    int main()
    {
        int v[5], i, s=0, d;
        float m, x;
        printf("Inserisci valori del vettore:\n");
        for(i=0; i<5; i++) {
            scanf("%d", &v[i]);
        }
        d = upperlimit(v, i, x);
        m = vectmedia(v, i);
        printf("Numero dei valori trovati superiori a %d trovati: %lf\n", x, d);
        printf("Media degli elementi: %lf", m);
        return 0;
    }
    
    
    int limit( int a[], int b, float c) {
        int flag =0,w;
        for(w=0; w<b-1; w++) {
            if( a[w]>c) {
                flag++;
            }
        }
        return flag;
    }
    double vectmedia(int a[],int b) {
        int somma=0, w;
        double media;
        for(w=0; w<b-1; w++) {
            somma=somma +a[w];
        }
        media = somma/(b-1);
        return media;
    }
    Ultima modifica di MItaly; 24-11-2015 a 22:28 Motivo: Aggiunti tag CODE, fix indentazione

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da Franzcecco Visualizza il messaggio
    Comunque non va lo stesso
    Naturalmente dato che non hai corretto completamente la prima dichiarazione

    Perché non la copi?
    Ultima modifica di oregon; 24-11-2015 a 19:27
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Sarò ottuso, ma non vedo l'errore... Potresti indicarmelo?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Il primo parametro non deve essere un int ma un vettore di int
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define n 5
    int limit(int v[],int);
    float media (int v[]);
    int main()
    {
        int i, x, f, v[n];
        float m;
        printf("Inserisci i valori del vettori:\n");
        for(i=0; i<n; i++) {
            scanf("%d", &v[i]);
        }
        printf("Inserisci il valore da confrontare:\n");
        scanf("%d", &x);
        m = media(v);
        f = limit(v, x);
        printf("Media %f invece il valore %d e' superato %d volte.", m, x, f);
        return 0;
    }
    limit (vettore[], a) {
        int d, flag=0;
        for (d=0; d<n; d++) {
            if (v[d]> a) {
                flag++;
            }
        }
        return flag;
    }
    media(vettore[]) {
        int s, somma;
        float media;
        for(s=0; s<n; s++) {
            somma = somma + vettore[s];
        }
        media = somma/n;
        return media;
    }
    Ho riscritto così, ma mi dice adesso uknown type name 'vettore' and 'a'... cosa significa?
    Ultima modifica di MItaly; 24-11-2015 a 22:29 Motivo: Aggiunti tag CODE, fix indentazione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.