La prof pretende un algoritmo in pascl:
è dato un elenco di prodotti di cui vengono indicati la descrizione, il prezzo e la percentuale di sconto. Scrivere la descrizione e il prezzo scontato di ciascun prodotto.
scrivere poi la descrizione e il prezzo del prodotto più costoso, comunicare il totale degli sconti, comunicare la media dei pezzi e la media dgli sconti.
che ho risolto in pascal:
codice:
PROGRAM Eprod;
USES crt;
VAR
i,n:integer;
pre,perc,tots,ppiuc,mpre,mscon:real;
des,desmax:string[100];
BEGIN
clrscr;
write('Inserire il numero di prodotti nell''elenco: ');
readln(n);
i:=1;
write('Inserire il prezzo del prodotto 1: ');
readln(pre);
write('Inserire la percentuale del prodotto 1: ');
readln(perc);
write('Inserire la descrizione del prodotto 1: ');
readln(des);
writeln('Il prezzo scontato del prodotto 1 e'': ',pre-((pre*perc)/100):5:2);
writeln('(',des,')');
desmax:=des;
ppiuc:=pre;
tots:=(pre*perc)/100;
mpre:=pre;
mscon:=perc;
REPEAT
write('Inserire il prezzo del prodotto ',i+1,': ');
readln(pre);
write('Inserire la percentuale del prodotto ',i+1,': ');
readln(perc);
write('Inserire la descrizione del prodotto ',i+1,': ');
readln(des);
writeln('Il prezzo scontato del prodotto ',i+1,' e'': ',pre-((pre*perc)/100):5:2);
writeln('(',des,')');
tots:=tots+((pre*perc)/100);
mpre:=mpre+pre;
mscon:=mscon+perc;
IF(ppiuc<=pre)THEN
BEGIN
ppiuc:=pre;
desmax:=des;
END;
i:=i+1;
UNTIL(i>=n);
writeln('Il prezzo piu'' alto e'': ',ppiuc:5:2);
writeln('(',desmax,')');
writeln;
writeln('Il totale dei prezzi e'': ',tots:5:2);
writeln;
writeln('La media dei prezzi e'' di: ',mpre/n:5:2);
writeln('La media degli sconti e'' di: ',mscon/n:5:2);
readln;
END.
con apparente successo...
volendo imparare il c ho provato ha riscrivere l'algoritmo in c:
codice:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main(){
int n,i;
int pre,perc,tots,ppiuc,mpre,mscon;
char des[100],desmax[100];
printf("Inserire il numero di prodotti nell'elenco: ");
scanf("%d", n);
i=1;
printf("Inserire il prezzo del prodotto 1: ");
scanf("%d", pre);
printf("Inserire la percentuale del prodotto 1: ");
scanf("%d", perc);
printf("Inserire la descrizione del prodotto 1: ");
scanf("%s", des);
printf("Il prezzo scontato del prodotto 1 e': %d\n(%d)",pre-((pre*perc)/100),\
des);
strcpy(desmax,des);
ppiuc=pre;
tots=(pre*perc)/100;
mpre=pre;
mscon=perc;
do{
printf("Inserire il prezzo del prodotto %d: ",i+1);
scanf("%d", pre);
printf("Inserire la percentuale del prodotto %d: ",i+1);
scanf("%d", perc);
printf("Inserire la descrizione del prodotto 1: ",i+1);
scanf("%s", des);
printf("Il prezzo scontato del prodotto %d e': %d\n(%d)",i+1,pre-((pre*perc)\
/100),des);
tots+=((pre*perc)/100);
mpre+=pre;
mscon+=perc;
if(ppiuc<=pre){
ppiuc=pre;
strcpy(desmax,des);
}
i++;
}while(i>=n);
printf("Il prezzo piu' alto e': %d\n(%s)\n\n",ppiuc,desmax);
printf("Il totale dei prezzi e': %d\n\n",tots);
printf("La media dei prezzi e' di: %d\nLa media degli sconti e' di: %d\n",mpre/n,mscon/n);
system("pause");
}
Il problema e che non mi funziona l'algoritmo in c. il compilatore gcc non da errori ma quando vado ad eseguiere il programma si blocca dopo l'input della variabile n.