View Single Post
Old 07-11-2013, 18:13   #1
davide.di.paolo
Junior Member
 
L'Avatar di davide.di.paolo
 
Iscritto dal: May 2011
Messaggi: 21
[C] Problema programma in c

Ho un problema con questo programma, praticamente quando vado ad inserire i nomi della materia e i voti, il programma non va avanti e mi dice solo: premere un tasto per continuare...
Questo programma deve fare la media dei voti, vedere esito (promosso,rimandato,bocciato) e assegnare i punti di credito agli alunni delle classi 3,4 e 5.

Codice:
#include<stdio.h>
#include<stdlib.h>
#define n 1
#define m 5

int j=0;
int i=0;
int a=0;
int c=0;

struct materie_voti{ char materie[10];
                     int voto;
                     }mat_voti[m];
                     
struct studente{ char nome[20];
                 char cognome[20];
                 int classe;
                 float media;
                 }alunno[n];
                 
void carica()
   {for(i=0;i<n;i++)
      {printf("inserisci nome: ");
      scanf("%s",&alunno[i].nome);
      printf("inserisci cognome: ");
      scanf("%s",&alunno[i].cognome);
      printf("inserisci classe: ");
      scanf("%d",&alunno[i].classe);

       for(j=0;j<m;j++)
        {printf("inserisci nome materia: ");
        scanf("%s",&mat_voti[j].materie);
        printf("inserisci voto: ");
        scanf("%d",&mat_voti[j].voto);
        }
       }
       
   for(i=0;i<n;i++)
   { a=a+mat_voti[i].voto;
     c++;
   }
   alunno[i].media=a/c;

   }
   
 void pri_sec()
 {if((alunno[i].classe==1)||(alunno[i].classe==2))
 {for(j=0;j<m;j++)
 {if(mat_voti[j].voto<=3)
     printf("Bocciato");
  else{
  if((mat_voti[j].voto==4)||(mat_voti[j].voto==5))
  printf("Rimandato");
  else{
  printf("Promosso");
  printf("La media dei voti e': %f",alunno[i].media);
  }
  }
  }
  }
  }
  
 void ter_qua()
 {if((alunno[i].classe==3)||(alunno[i].classe==4))
 {for(j=0;j<m;j++)
 {if(mat_voti[j].voto<=3)
     printf("Bocciato");
  else{
  if((mat_voti[j].voto==4)||(mat_voti[j].voto==5))
  printf("Rimandato");
  else{
       if(alunno[i].media==6)
       printf("Promosso con 3 punti di credito");
       else{
           if((alunno[i].media>6)&&(alunno[i].media<=6.4))
           printf("Promosso con 4 punti di credito");
            else{
             if((alunno[i].media>=6.5)&&(alunno[i].media<=7))
             printf("Promosso con 5 punti di credito");
              else{
               if((alunno[i].media>7)&&(alunno[i].media<=7.4))
               printf("Promosso con 5 punti di credito");
                else{
                 if((alunno[i].media>=7.5)&&(alunno[i].media<=8))
                  printf("Promosso con 6 punti di credito");
                   else{
                    if((alunno[i].media>8)&&(alunno[i].media<=8.4))
                     printf("Promosso con 6 punti di credito");
                      else{
                       if((alunno[i].media>=8.5)&&(alunno[i].media<=9))
                        printf("Promosso con 7 punti di credito");
                         else{
                          if((alunno[i].media>9)&&(alunno[i].media<=9.4))
                           printf("Promosso con 7 punti di credito");
                            else{
                             if((alunno[i].media>=9.5)&&(alunno[i].media<=10))
                              printf("Promosso con 8 punti di credito");
                              }}}}}}}}}}}}}
                              
                              
                              
 void quinto()
 {if(alunno[i].classe==5)
 {for(j=0;j<m;j++)
 {if(mat_voti[j].voto<=5)
     printf("Bocciato");
  else{
       if(alunno[i].media==6)
       printf("Promosso con 4 punti di credito");
       else{
           if((alunno[i].media>6)&&(alunno[i].media<=6.4))
           printf("Promosso con 5 punti di credito");
            else{
             if((alunno[i].media>=6.5)&&(alunno[i].media<=7))
             printf("Promosso con 6 punti di credito");
              else{
               if((alunno[i].media>7)&&(alunno[i].media<=7.4))
               printf("Promosso con 6 punti di credito");
                else{
                 if((alunno[i].media>=7.5)&&(alunno[i].media<=8))
                  printf("Promosso con 7 punti di credito");
                   else{
                    if((alunno[i].media>8)&&(alunno[i].media<=8.4))
                     printf("Promosso con 7 punti di credito");
                      else{
                       if((alunno[i].media>=8.5)&&(alunno[i].media<=9))
                        printf("Promosso con 8 punti di credito");
                         else{
                          if((alunno[i].media>9)&&(alunno[i].media<=9.4))
                           printf("Promosso con 8 punti di credito");
                            else{
                             if((alunno[i].media>=9.5)&&(alunno[i].media<=10))
                              printf("Promosso con 9 punti di credito");
                              }}}}}}}}}}}}

int main(){
    carica();
    pri_sec();
    ter_qua();
    quinto();
    system("pause");
}
__________________
Motherboard: ASUS M5A97 EVO R2.0
CPU: AMD FX-8320 @ 3.5GHz
RAM: 2x4 GB
GPU: MSI Radeon R9 280X (3 GB)
OS: Windows 10 Pro (64 Bit)
davide.di.paolo è offline   Rispondi citando il messaggio o parte di esso