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

    problema programma c

    ciao sono di nuovo qui a chiedervi aiuto, devo da un .exe fare un progetto in modo che mi risulti un .exe uguale adesso vi posto l'exe e il progetto che sto facendo

    Codice PHP:
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
      
    int risultato,bocciati;
      
    int i,studenti,voto,n,y,m;
      
    int x=1;
      
    int t=0;
      
    int v[13];

     
      
      
    printf("PROGRAMMA PER CONOSCERE I RISULTATI DI ESAME C\n**********************************************\n");
      
    printf("\n*** Menu di scelta ***\na - \tHelp\nb - \tProgramma\n");
      
    printf("\nScegli: a o b?\t");
      
    scanf("%c",&i);
      switch(
    i){
                     case 
    'a':
                          
    printf("\nProgramma v1.0\n");
                          break;
                     case 
    'b':
                          
    printf("\nQuesto programma permette di conoscere i risultati medi di un esame per un gruppo di studenti.Si desidera calcolare il voto medio di coloro che hanno superato l'esame conseguendo un voto maggiore o uguale a 60/100\n");
                          break;
                     default:
                          
    printf("\nERRORE\n");

    }
      
    printf("Inserire il numero di studenti che hanno sostenuto l'esame: ");
      
    scanf("%d",&studenti);
      for(
    n=0;n<studenti;n++){
                              
    printf("Inserisci il %d voto: ",x);
                              
    scanf("%d",&voto);
                              
    v[n]==voto;
                              
    x++;
                              }
      for(
    y=0;y<studenti;y++){
      while(
    v[y]!='\0') {             
      if(
    v[y]>=60){
      
    m+=v[y];
      ++
    t;
    }
    }
    }

      
    risultato=(m/t);                       
      
    printf("Il numero di promossi Š stato: %d con voto medio di: %d centesimi",t,risultato);
      
    bocciati=(studenti-t);
      
    printf("Il numero di bocciati Š: %d",bocciati);
      
      
    system("PAUSE");    
      return 
    0;

    il problema è dato dal fatto che il programma si ferma dopo il primo ciclo for grazie a tutti

  2. #2
    come posso postare l'eseguibile?

  3. #3
    Un errore che vedo subito:
    codice:
                              scanf("%d",&voto);
                              v[n]=voto;
    e tra l'altro non ti serve nemmeno la variabile d'appoggio "voto", ti basta fare
    codice:
                              scanf("%d",v+n);
    .
    Inoltre cosa sarebbe questo?
    codice:
    while(v[y]!='�')
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Postare un eseguibile non ha senso: hai già postato il sorgente, è sempre su quello che si lavora (mai sull'eseguibile...).

    A parte il fatto che non si è capito molto cosa tu voglia ottenere (un eseguibile uguale ad un altro??? Mah...), se il programma si blocca sul secondo ciclo può essere dovuto al fatto che l'array che stai cercando di controllare non contiene nessun carattere come quello della guardia del while...

    PS: Occhio ai titoli.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Ma soprattutto non ha senso effettuare il confronto di un carattere con un intero (il voto inserito).
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    non so perchè è venuta così '�' però sarebbe '\0'. cmq quello che devo fare è avendo un eseguibile fare dal nulla un programma come quello che ho rifare il progetto insomma. il while l'ho messo così mi prende tutti i voti superiori a 60 e finisce di cercare quando arriva alla fine dell'array

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Non puoi gestire un array di interi (nel tuo caso "v") come se fosse un array di caratteri facendo il controllo v[y] != '\0'. Il predicato di uscita del while dovrebbe essere - nel tuo caso - y < studenti, visto che, a quanto pare (non ho provato il programma), inserisci un voto per ciascuno studente. Tra l'altro in quel while y non viene mai incrementata ma piuttosto viene incrementata quella strana variabile t, quindi direi che è più che normale che non ha mai fine il ciclo... mi sa che c'è un bel po' da riscrivere.

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.