|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2007
Città: Forlì
Messaggi: 1029
|
Aiuto semplice programma in C
Ragazzi vi chiedo aiuto per un semplice programma che mi sta facendo diventare scemo. Il testo è il seguente, 2 array uno per i codici degli articoli e l altro per i prezzi. le richieste sono le seguenti:
1) inserire la dimensione degli array, stessa per entrambi 2) visualizzare i codici degli articoli il cui prezzo unitario è minore di 15 e dire quanti sono 3)visualizzare il prezzo dell articolo xyz12 e visualizzare un messaggio se il codice non è presente 4)visualizzare i codici degli articoli che hanno prezzo max indicando anche quanti sono di seguito il codice #include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char *art; int *pr; int dim=0,i,prezzo=0,cont=0,max=0,contmax=0; char codice; int c=0; do { printf("inserisci la greandezza degli array: "); scanf("%d",&dim); } while(dim<0); art=(char*) malloc(sizeof(char)*dim); pr = (int*)malloc(sizeof(int)*dim); for(i=0;i<dim;i++) { printf("\n inserisci il codice "); scanf("%s",&codice); art[i]=codice; printf("\n inserisci il prezzo rispettivo "); scanf("%d",&prezzo); pr[i]=prezzo; } for(i=0;i<dim;i++) { if(pr[i]<15) { printf("\n il seguetne codice ha prezzo minore di 15 %s:",&art[i]); cont++; } } printf("\ngli articoli con prezzo minore di 15 sono %d",cont); for(i=0;i<dim;i++) { if(strcmp(&art[i],"xyz12")==0) { printf("prezzo %d",&pr[i]); c=1; } } if(c==0) printf("\ncodice non presente xyz"); max=pr[0]; for(i=0;i<dim;i++) { if(max<=pr[i]) { max=pr[i]; } } for(i=0;i<dim;i++) { if(max==pr[i]) { contmax++; printf("\nil seguente codice ha prezzo massimo %s",&art[i]); } } printf("\ni prezzi massimi sono %d \n",contmax); system("pause"); return 0; } Il problema è che nella stampa non visualizza correttamente i codici inseriti e non fa il confronto con l articolo xyz12, qualche consiglio?
__________________
Mgs4 batte tutti ![]() PSN:felisema |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2011
Messaggi: 46
|
il problema principale è che stai usando char *art come fosse un array di stringhe, quando in realtà è un array di char
PS usa i tag [ CODE ] per racchiudere codice |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2007
Città: Forlì
Messaggi: 1029
|
Conviene usare una matrice?
__________________
Mgs4 batte tutti ![]() PSN:felisema |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Feb 2011
Messaggi: 46
|
se vuoi fare un array di stringhe usa char** (alla fine si, è una matrice, perché una stringa è un array di char),
dopo aver chiesto all'utente il numero di articoli lo allochi con malloc, dopodiché per ogni elemento che hai appena allocato (che sarà un char*), allochi un altro array (char) che sarà la stringa vera e propria. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2007
Città: Forlì
Messaggi: 1029
|
thanks
__________________
Mgs4 batte tutti ![]() PSN:felisema |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:16.



















