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

    problemi con i for o parentesi?

    Salve, sono sempre io con i miei quesiti da niubbo ..

    Allora sono sicuro che anche questa è una banalità. Il programma non visualizza l'ultima tabella e il codice mi sembra giusto .. vi posto

    codice:
    int main(int argc, char *argv[]) {
    
    roba varia ...
    
    char decision[80];
    printf("\nPremi il tasto ENTER attivare il processo ", decision);
    if(gets(decision)) {
    
    roba varia ...
    
    for (j = 0; j < n; ++j) {
    vet[y]=arrayOne[y];
    //PERTURBAZIONE CASUALE////////
    set = (rand()%100);
    double r = ((double)set/100)*5;
    score[j]=((double)p[j]/(double)w[j])+(double)r;
    printf("OBJ: %d, Profitto: %d, Peso: %d, Item: %d, Score: %.3f\n", arrayOne[j], p[j], w[j], q[j], score[j]);
    }
    printf("\n");
    printf("Esecuzione algoritmo con ordinamento O(nlogn)\n\n");
    
    for (j = 0; j < n; ++j)	{
    ////Ordinamento decrescente ------------------------------------------
    
    for (i=0; i<n; i++) { 
    vet[i]=arrayOne[i];
    } 
    
    int salto,tempItem;
    double tempScore;
    
       for (salto = n/2; salto > 0; salto /=2)
           for (i = salto; i < n; i++)
               for (j = i-salto; j >= 0; j-=salto) {
                   if (score[j] >= score[j+salto]) break;
                   tempScore = score[j]; score[j]=score[j+salto]; score[j+salto]=tempScore;
    			   tempItem = vet[j]; vet[j]=vet[j+salto]; vet[j+salto]=tempItem;
    			   arrayOne[i]=vet[i];
               }
    
    for (i=0; i<n; i++) { 
    arrayOne[i]=vet[i];
    } 
    
    				for (i = 0; i < n; ++i)	{
    				if ((w[i] <= C ))	{
    				x[i]=Min((C/w[i]),q[i]);
    				valore = valore + (p[i]*x[i]);
    				C = C - (w[i]*x[i]);
    				precedente = arrayOne[i];
    				contatore = contatore+1;
    				printf("OBJ %d; Profitto cumulato: %d; Dimensione: %d; Item: %d; CapacitaR %d.\n", precedente, valore, w[i], q[i], C);
    									}  
    						}				 
    			
    
    
    			} 
    t1=clock();							
    printf("\nPROCESSO CONCLUSO.\n");
    printf("------------------------------\n");
    printf("OBJ Processati:		%d\n", contatore);
    printf("Profitto:		%d\n", valore);
    printf("CapacitaR finale:	%d\n", C);
    printf("Tempo Totale:		%.3f\n",((double)(t1 - t0)) / ((double)CLOCKS_PER_SEC));
    printf("------------------------------\n");
    printf("\n");
    
    contatore1 = contatore;
    valore1 = valore;
    C1 = C;
    tempo1 = ((double)(t1 - t0)) / ((double)CLOCKS_PER_SEC);
    
    }
    
    system("pause");
    return 0;
    
    }
    L'ultima tabella non si legge e non perchè ...
    << World and Technology >>

  2. #2

    RISOLTO

    Non importa ho risolto, era un problema di come scorrevano i parametri del for i e j ..
    << World and Technology >>

  3. #3

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303

    Moderazione

    Il linguaggio va sempre obbligatoriamente indicato nel titolo. Vedi regolamento.


    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

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.