Visualizzazione dei risultati da 1 a 10 su 18

Visualizzazione discussione

  1. #1

    [C] Problemino in un programma

    Ho un problema nel seguente programma:
    codice:
    #include <stdio.h>#include <stdlib.h>
    #include <string.h>
    #define MAX 20
    
    
    void eliminatejob(char job[0],int tempo[0],int esec[0]); 
    void visualmenu();
    void scelta(int *N);
    void gestione(int N,char job[0],int tempo[0],int esec[0],int j);
    void insjob(char job[0],int tempo[0],int esec[0],int j);
    void visualjob(char job[0],int tempo[0],int esec[0]);
    void execute(char job[0],int tempo[0],int esec[0]);
    void inizializzazione(char job[0]);
     
    
    
    int main(){
       char job[MAX];
       int tempo [MAX];
       int esec[MAX];
       int N;
       int j=0;
       
        inizializzazione(job);
        visualmenu();
        scelta(&N);
        while(N!=5){
        gestione(N,job,tempo,esec,j); 
        }
        
    
    
    
    
    
    
        
        system("PAUSE");
        return 0;
    }
    void inizializzazione(char job[0]){
         int i;
         for(i=0;i<MAX;i++)
         job[i]='x';
         
         return;
         }
    void visualmenu(){
         printf("\t\t\t\tSCHEDULAZIONE");
        printf("\n\n\tMENU: \n");
        printf("\n\t1:Inserisci job");
        printf("\n\t2:Esegui job");
        printf("\n\t3:Elimina job eseguiti");
        printf("\n\t4:Visualizza job presenti");
        printf("\n\t5:Exit");
    return;
    }
    void scelta(int *N){
    
    
        printf("\n\n\tScelta: ");
        scanf("%d",N);
        while((*N<1)||(*N>5)){
            printf("Errore");
            printf("Scelta: ");
            scanf("%d",*N);
        }
    
    
    return;
    }
    void gestione(int N,char job[0],int tempo[0],int esec[0],int j){
         switch(N){
         case 1: insjob(job,tempo,esec,j);         
                 break;
         case 2: execute(job,tempo,esec);
                break;
         case 3:eliminatejob(job,tempo,esec);              
                break;
         case 4: visualjob(job,tempo,esec);
                break;   
         }
         
         
         return;
         }
         
    void insjob(char job[0],int tempo[0],int esec[0],int j){
         if(j!=MAX){
           printf("\n\tInserisci nome: ");
           scanf("%s",&job[j]);
           printf("\n\tInserisci tempo di esecuzione: ");
           scanf("%d",&tempo[j]);
           esec[j]=0;
           j++;
         }else{
          printf("\n\t!! Memoria piena, impossibile inserire altri job !!");     
         }
         return;
         }
         
    void visualjob(char job[0],int tempo[0],int esec[0]){
         int i;
         printf("\n\tProgrammi in memoria - Tempo di esecuzione - Programmi eseguiti\n");
         for(i=0;(i<MAX);i++){
            if(job[i]!='x'){
            printf("\n\t %s - %d - %d\n",job[i],tempo[i],esec[i]);
            }
         }
         return;
    }
    void execute(char job[0],int tempo[0],int esec[0]){
         int minore,indice,i;
         indice = 0;
         minore = tempo[0];
         for(i=0;i<MAX;i++){
           if(job[i]!='x'){
           if(tempo[i]<minore){
             minore = tempo[i];
             indice = i;
             }
           }                                   
         }
         printf("Programma in esecuzione: %s",job[indice]);
         sleep(tempo[indice]);
         esec[indice] = 1;
         return;
         }
    
    
     void eliminatejob(char job[0],int tempo[0],int esec[0]){
         int i;
         for(i=0;i<MAX;i++){
           if(job[i] != 'x'){
             if(esec[i] = 1){
             job[i] = 'x';
             tempo[i] = 0;
             esec[i] = 0;
             }
           }                  
                            
         }
         printf("Programmi rimasti: ");
         for(i=0;(i<MAX);i++){
            if(job[i]!='x'){
            printf("\n\t %s - %d - %d\n",job[i],tempo[i],esec[i]);
            }
         
         }
         
         
         return;
         }
    In poche parole, quando inserisco 1, mi esce "Inserisci nome:" e "Inserisci tempo di esecuzione:" dopo aver inserito il tempo di esecuzione mi ri esce: "Inserisci nome:" e "Inserisci tempo di esecuzione:" e invece mi dovrebbe uscire il menu, come posso risolvere? E mi risulta provando questo codice che va in loop ma non riesco a trovare l'errore
    Ultima modifica di tommasoperilli; 10-05-2014 a 16:37

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 © 2025 vBulletin Solutions, Inc. All rights reserved.