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.