Il programma allo stato attuale è illeggibile, difficile che qualcuno si prenda la briga di cercare di capire cosa fa. Qualche consiglio:
1. indenta il codice
2. spezzalo in procedure separate;codice:#include<stdio.h> #include<stdlib.h> #include<math.h> #include<conio.h> int main() { int n,k,p,c,d,pr,fn,fk,fkn,fkn1,fn1,pow,b,i,cr; char a,risp,si,no,ff,fnk,nk,dr,potenza,fnk1; printf("Inserisci n"); scanf("%d",&n); printf("Inserisci k"); scanf("%d",&k); if(n>k) { printf("Quale operazione vuoi effettuare?\n"); printf("Premi 'p' per calcolare le permutazioni"); printf("\nPremi 'd' per calcolare le disposizioni"); printf("\nPremi 'c' per calcolare le combinazioni\n"); getch (); if(a=='p') { fn=1; for(i=1; i<=n; i++) { fn=i*n; } printf("vuoi calcolare anche le permutazioni con ripetizioni? si/no"); scanf("%c",risp); if (risp==si) { fn=1; for(i=1; i<=n; i++) { fn=i*n; } "ff"; pr=fn/ff; } else if (a=='d') { fn=i; for(i=1; i<=n; i++) { fn=i*n; } fnk=1; for(i=1; i<=nk; i++) { fnk=i*nk; } d=fn/fnk; } printf("vuoi calcolare anche le disposizioni con ripetizione? si/no"); scanf("%c",risp); if (risp==si) { dr=n*k; } else if (a=='c') { fn=1; for(i=1; i<=n; i++) { fn=i*n; } fnk=1; for(i=1; i<=nk; i++) { nk=(i*nk); } fk=1; for(i=1; i<=k; i++) { fk=i*k; } c=fn/(fnk*fk); } printf("vuoi calcolare anche le combinazioni con ripetizioni? si/no"); scanf("%c",risp); if (risp==si) { b=n+k-1; fnk1=1; for(i=1; i<=b; i++) { fnk1=i*fnk1; } fk=1; for(i=1; i<=fk; i++) { fk=i*fk; } fn1=1; for(i=1; i<=fn1; i++) { fn1=i*fn1; } cr=fnk1/(fk*fn1); } getch(); } } }
3. aggiungi commenti;
4. usa nomi sensati per le variabili.

Rispondi quotando