Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    C :errore che non capisco

    ho compilato il seguente sorgente e mi da errori in righe: 7,8,50
    cioè:
    riga 7 = long income[max];
    riga 8= int month[max],day[max],year[max];
    riga 50 = for(cont=yes,ctr=0;ctr<max && cont==yes;ctr++)
    sapreste dirmi il perchè??????



    #include <stdio.h>

    #define max 100;
    #define yes 1
    #define no 0

    int long income[max];
    int month[max],day[max],year[max];
    int x,y,ctr;
    int cont;
    long month_total,grand_total;

    void main(void);
    int display_instructions(void);
    void get_data(void);
    void display_report(void);
    int continue_function(void);

    /*funzione1 che chiede all'utente se uscire o continuare*/
    void main(void)
    {
    cont = display_instructions();

    if(cont==yes)
    {
    get_data();
    display_report();
    }
    else
    printf("\nProgramma interrotto dall'utente!\n\n");
    }

    /*funzione2 ottine dati da utente fino a che non si arriva a 100 pers o si ins 0 per mese*/
    int display_instructions(void)
    {
    printf("\n\n");
    printf("\nQuesto programma consente di inserire le date di");
    printf("\nnascita ed i guadagni di al piu' 99 persone.Poi stampa");
    printf("\ni guadgni mensili, il totale e la media.");
    printf("\n");

    cont=continue_function();

    return(cont);
    }

    /*funzione3*/
    void get_data(void)
    {
    for(cont=yes,ctr=0;ctr<max && cont==yes;ctr++)
    {
    printf("\nInserire informazioni per la persona %d.",ctr+1);
    printf("\n\tData di nascita:");

    do
    {
    printf("\n\tMese (0 - 12):");
    scanf("%d",&month[ctr]);
    }while (month[ctr]<0 || month[ctr]>12);

    do
    {
    printf("\n\tGiorno (0 - 31):");
    scanf("%d",&day[ctr]);
    }while (day[ctr]<0 || day[ctr]>31);

    do
    {
    printf("\n\tAnno (0 - 2003)");
    scanf("%d",&year[ctr]);
    }while (year[ctr]<0 || year[ctr]>2003);

    printf("\nInserire guadagno annuale (in migliaia di lire):");
    scanf("%ld",&income[ctr]);

    cont=continue_function();
    }
    }

    /*funzione3*/
    void display_report()
    {
    grand_total=0;
    printf("\n\n\n");
    printf("\n RAPPORTO SUI GUADAGNI");
    printf("\n =====================");

    for(x=0;x<=12;x++)
    {
    month_total=0;
    for(y=0;y<ctr;y++)
    {
    if(month[y]==x)
    month_total+=income[y];
    }
    printf("\nIl totale del mese %d e' %ld",x,month_total);
    grand_total+=month_total;
    }
    printf("\n\nTotali:");
    printf("\nIl guadagno totale e' %ld",grand_total);
    printf("\nIl guadagno medio e' di %ld",grand_total/ctr);

    printf("\n\n* * *Fine del rapporto* * *\n");
    }

    /*funzione4*/
    int continue_function(void)
    {
    printf("\n\nVuoi continuare? (0=no/1=yes):");
    scanf("%d",&x);

    while(x<0 || x>1)
    {
    printf("\n%d non e' valido!",x);
    printf("\nInserire 0 per uscire o 1 per continuare:");
    scanf("%d",&x);
    }
    if(x==0)
    return(no);
    else
    return(yes);
    }


    vi prego aiutatemi!!!
    grazie

  2. #2
    A occhio hai sbagliato la #define
    La sintassi corretta è:
    codice:
    #define max 100
    Senza quindi il ; finale.
    Saluti,

  3. #3
    ma...son proprio un coglione
    grazie mille, ora funziona tutto,grazie ancora.

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.