Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [C]Conflicting types

  1. #1

    [C]Conflicting types

    Ciao,
    devo fare un programma che, inserita una sequenza di numeri terminata da zero, restituisca la media dei quadrati dei numeri.

    Il problema è che quando compilo il codice mi appare questo erropre di compilazione:
    1) alla riga 20: conflicting types for 'ele' //colorata di verde
    2) alla riga 14: previous implicit declaration of 'ele' was here //colorato di rosso
    codice:
    #include<stdio.h>
    int main()
    {
        int  i=0;
        float n[100];
        printf("Inserisci un numero (per terminare premi zero)");
        do
        {
           printf("\nInserisci il %d%c numero:", i+1, 167);
           scanf("%f", &n[i]);
           i++;
        }
        while(n[i-1]!=0);
        printf("La media somma dei quadrati dei numeri e\': %f", ele(n)); 
        system("pause");
        return 0;
    }
    //Implementazione della funzione per la media dei quadrati
    float ele(float n1[])
    { 
          float somma=0, media=0;
          int k=0;
          do
          {
                somma = somma + (n1[k]*n1[k]);
                k++;
          }
          while(n1[k-1]!=0);
          media = somma/k+1;
          return media;
    }
    Ciao e grazie
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  2. #2

    Re: [C]Conflicting types

    Originariamente inviato da 21Edoardo96
    2) alla riga 14: previous implicit declaration of 'ele' was here //colorato di rosso
    La funzione ele deve essere inserita prima del main.
    "Memento audere semper"

    IBM Europe - Italy Group

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: [C]Conflicting types

    Originariamente inviato da Hard*RTOS
    La funzione ele deve essere inserita prima del main.
    Non necessariamente: prima del main può mettere solo il prototipo...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4

    Re: Re: Re: [C]Conflicting types

    Originariamente inviato da Alex'87
    Non necessariamente: prima del main può mettere solo il prototipo...
    Ovvio, non credi?

    Considerato il livello dell'utente - ancora all'inizio nello studio del C - volevo evitare di parlare di prototipi, per non creare ancora più confusione, per cui ho suggerito semplicemente di spostare la funzione prima del main.
    "Memento audere semper"

    IBM Europe - Italy Group

  5. #5
    Grazie, ho aggiunto la funzione ele nel main.
    codice:
    #include<stdio.h>
    float ele(float []);
    int main()
    {
        int  i=0;
        float n[100];
        printf("Inserisci un numero (per terminare premi zero)");
        do
        {
           printf("\nInserisci il %d%c numero:", i+1, 167);
           scanf("%f", &n[i]);
           i++;
        }
        while(n[i-1]!=0);
        printf("\nLa media somma dei quadrati dei numeri e\': %5.1f\n", ele(n));
        system("pause");
        return 0;
    }
    //Implementazione della funzione per la media dei quadrati
    float ele(float n1[])
    {
          float somma=0, media=0;
          int k=0;
          do
          {
                somma = somma + (n1[k]*n1[k]);
                k++;
          }
          while(n1[k-1]!=0);
          media = somma/k+1;
          return media;
    }
    Ciao e grazie
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  6. #6
    Originariamente inviato da 21Edoardo96
    Grazie, ho aggiunto la funzione ele nel main.
    No, non l'hai aggiunta nel main: hai semplicemente inserito il prototipo della funzione prima della procedura principale.

    Ciao
    "Memento audere semper"

    IBM Europe - Italy Group

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: Re: Re: [C]Conflicting types

    Originariamente inviato da Hard*RTOS
    Ovvio, non credi?

    Considerato il livello dell'utente - ancora all'inizio nello studio del C - volevo evitare di parlare di prototipi, per non creare ancora più confusione, per cui ho suggerito semplicemente di spostare la funzione prima del main.
    Così quando arriverà ad avere due funzioni che si chiamano a vicenda non saprà come venirne fuori :P

    Il concetto di prototipo di una funzione non mi pare così difficile da assimilare. Un po' come si dichiara una variabile prima di usarla ecco che si dichiara una funzione prima di chiamarla. Detta così non mi pare una cosa tanto assurda
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Grazie a tutti per l'aiuto
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

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.