Emofelix
08-12-2011, 14:25
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?
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?