Esercizio c

di il
6 risposte

Esercizio c

Salve a tutti mi sono appena registrato a questo sito perché non riesco a risolvere questo es.
Testo problema:
dati n articoli, inserire il nome e il prezzo a ciascuno e poi ordinarli in ordine crescente in base ad esso.
non so perché alla fine mi assegna all'articolo il prezzo sbagliato
#include<stdio.h>
#include<stdlib.h>
#include<iostream>

    
int main()
{
int i, j, nart;
float prezzo[10][10], temp;
char art[50][20];

    printf("\t\t\t\tARRAY PARALLELI\n\n");
    printf("\t\t\tScrivi il numero degli articoli: ");
    scanf("%d",&nart);
    printf("\n\n");
    system("CLS"); 
    printf("\t\t\t\tARRAY PARALLELI\n\n");
    for (i=0; i<nart; i++) 
    {
        for (j=0; j<1; j++) 
        {
         printf("\t\tInserisci il nome del %d articolo: ",i+1);
         scanf("%s",&art[i][j]);  
         printf("\t\tInserisci il prezzo del %d articolo: ",i+1);
         scanf("%f",&prezzo[i][j]);
        }
    }    
   
      for(i=0; i<nart; i++)
         for(j=0; j<nart; j++)
             if(prezzo[i][j] > prezzo[i+1][j])
             {
               temp = prezzo[i][j];
               prezzo[i][j] = prezzo[i+1][j];
               prezzo[i+1][j] = temp;
             }
printf("\n\nL'ordine crescente dei numeri e':\n");
printf("Nome\t\t Prezzo\n");
for (i=0; i<nart; i++) 
{
    for (j=0; j<1; j++) 
        {
         printf("%s\t\t",&art[i][j]);
         printf("%6.2f",&prezzo[i][j]);
         printf("\n");
        }
} 

system("PAUSE");
return 0;
}

6 Risposte

  • Re: Esercizio c

    Ciao,
    nel tuo codice ci sono parecchie cose strane, tra cui quei cicli for con condizione j<1. Comunque a prima vista direi che il problema è il seguente: se riordini l'array dei prezzi lasciando immutato quello degli articoli allora perdi il parallelismo tra i due array.
    Soluzione: ogni scambio che fai su un array lo devi fare anche sull'altro.

    PS. Perché includi la libreria <iostream>? Ne puoi fare a meno, dato che riguarda il C++.
  • Re: Esercizio c

    Durante l'ordinamento, quando scambi gli elementi dei prezzi devi anche scambiare i corrispondenti elementi degli articoli.
  • Re: Esercizio c

    minomic ha scritto:


    Ciao,
    la libreria <iostream>
    iostream è un include non una libreria ...
  • Re: Esercizio c

    oregon ha scritto:


    minomic ha scritto:


    Ciao,
    la libreria <iostream>
    iostream è un include non una libreria ...
    Ok, ci siamo capiti...
  • Re: Esercizio c

    minomic ha scritto:


    oregon ha scritto:


    minomic ha scritto:


    Ciao,
    la libreria <iostream>
    iostream è un include non una libreria ...
    Ok, ci siamo capiti...
    Purtroppo questo "ci siamo capiti", per chi inizia, è fonte di forte confusione ... ho visto "bocciare" di brutto degli studenti ad un esame di C per questo tipo di affermazioni ...
  • Re: Esercizio c

    oregon ha scritto:


    Purtroppo questo "ci siamo capiti", per chi inizia, è fonte di forte confusione ... ho visto "bocciare" di brutto degli studenti ad un esame di C per questo tipo di affermazioni ...
    Benissimo, allora hai fatto bene a correggere.
Devi accedere o registrarti per scrivere nel forum
6 risposte