Salve, allora la traccia dell'esercizio è la seguente :
Utilizzate una matrice per risolvere il seguente problema. Un'azienda ha quattro venditori (numerati da 1 a 4) che vendono cinque differenti prodotti (numerati da 1 a 5). Una volta al giorno, ognuno dei venditori fornisce un tagliando per ogni tipo di prodotto venduto. Ogni tagliando contiene:
1. Il numero del venditore
2. Il numero del prodotto
3. Il valore totale del venduto giornaliero di quel prodotto
Di conseguenza, ogni venditore fornisce tra 0 e 5 tagliandi al giorno. Supponete che siano disponibili i dati dei tagliandi dell'ultimo mese. Scrivete un programma che legga le suddette informazioni, riguardanti il venduto dell'ultimo mese, e sommi le vendite totali per venditore e per prodotto. Tutti i totali dovranno esse immagazzinati nella matrice sales. Dopo avere elaborato tutte le informazioni dell'ultimo mese, visualizzate i risultati in formato tabulare in modo che le colonne rappresentino i vari venditori e le righe rappresentino i singoli prodotti. Sommate ogni riga, in modo da ottenere le vendite totali dell'ultimo mese per ognuno dei prodotti; sommate ogni colonna, in modo da ottenere il totale delle vendite dell'ultimo mese per ognuno dei venditori. La vostra stampa tabulare dovrà includere i suddetti totali a destra delle righe e in fondo alle colonne.
Io l'ho svolto in questo modo :
#include <stdio.h>
#define PRODOTTI 5
#define VENDITORI 4
void stampaMatrice(const int matrice[][4], int righe, int colonne);
int main()
{
int vendite[PRODOTTI][VENDITORI] = {{100,54,89,210},{120,200,342,20},{300,10,270,34},{160,234,67,89},{140,301,22,143}};
printf("\nRESOCONTO SULLE VENDITE DEL MESE UTILIZZANDO UNA MATRICE\n");
printf("\ni venditori sono rappresentati dalle colonne (4) mentre i prodotti dalle righe (5)\n");
stampaMatrice(vendite, PRODOTTI, VENDITORI);
printf("\n\n");
return 0;
}
void stampaMatrice(const int matrice[][4], int righe, int colonne)
{
int i;
int j;
int somma_righe;
int somma_colonne;
int vett[colonne];
printf("\nla matrice e' la seguente : \n\n");
for(i=0; i<righe; i++)
{
somma_righe = 0;
somma_colonne = 0;
for(j=0; j<colonne; j++)
{
somma_righe = somma_righe + matrice[i][j];
somma_colonne = somma_colonne + matrice[j][i];
printf("%d\t", matrice[i][j]);
}
somma_colonne = somma_colonne + matrice[4][i];
vett[i] = somma_colonne;
printf("-> %d", somma_righe);
printf("\n");
}
printf("\n");
printf("|\t|\t|\t|\t\n");
printf("v\tv\tv\tv\t\n");
for(i=0; i<colonne; i++)
{
printf("%d\t", vett[i]);
}
return;
}
I dati della matrice VENDITE rappresentano le vendite totali di ciascun prodotto (riga) per ogni venditore (colonna).
Vorrei sapere se è svolto bene. Considerando poi che al momento non ho ancora affrontato gli argomenti su puntatori e strutture vorrei sapere se senza questi è possibile svolgere questo esercizio in modo migliore (ammesso che il mio sia corretto ). Grazie a tutti per le eventuali risposte.