Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Realizzare un programma che effettui la moltiplicazione o la divisione tra due numeri interi positivi utilizzando solo l'addizione
- */
- #include <stdio.h>
- void molt(int,int); // Prototipo della funzione moltiplicazione
- void div(int,int); // Prototipo della funzione divisione
- int main() {
- int s,a,b; // s => scelta, a,b => fattori / dividendo (a) - divisore (b)
- while(1){
- printf("Inserisci 2 valori positivi\n");
- printf("1Β° valore --> ");
- scanf("%d", &a);
- printf("2Β° valore --> ");
- scanf("%d", &b);
- if(a < 0 || b < 0){ // Nel caso venga inserito un valore negativo, stampo un messaggio di errore e passo alla prossima iterazione
- printf("ERRORE: hai inserito dei valori negativi\n\n\n");
- continue; // Non eseguo le istruzioni successive e passo alla prossima iterazione
- }
- printf("Cosa vuoi fare?\n");
- printf("1) Moltiplicazione\n");
- printf("2) Divisione\n");
- printf("DEFAULT) Esci\n");
- printf("--> ");
- scanf("%d", &s);
- switch (s) {
- case 1: // Moltiplicazione
- molt(a,b);
- break;
- case 2: // Divisione
- div(a,b);
- break;
- default: // Uscita
- return 0;
- break;
- }
- }
- return 0;
- }
- // Moltiplicazione
- void molt(int f1, int f2){ // f1 => primo fattore, f2 => secondo fattore
- int i,p = 0; // i => contatore, p => prodotto
- if(f1 == 0 || f2 == 0){ // Se uno dei due fattori Γ¨ zero, il risultato sarΓ sicuramente zero
- p = 0;
- }else{
- for (i = 0; i < f2; i++) { // Sommo f1 a se stesso per f2 volte
- p += f1;
- }
- }
- printf("%d\n\n", p); // Stampo il prodotto
- }
- // Divisione
- void div(int dvd, int dvs){ // dvd => dividendo, dvs => divisore
- int i,q=0,r=0; // i => contatore, q => quoziente, r => resto
- if(dvs == 0){ // Mi assicuro che non venga effettuata una divisione per zero.
- printf("Errore: divisione per zero\n\n");
- }else{
- for (i = dvs; i <= dvd; i += dvs) { // Calcolo del quoziente (aumento i del divisore, incrementando q di 1 ad ogni ciclo)
- q++;
- }
- r = dvd - (q*dvs); // Calcolo il resto ( resto = dividendo - (divisore * quoziente) )
- // Stampa dei risultati
- printf("%d\n", q);
- if(r != 0){ // Stampo il resto nel caso in cui sia diverso da zero
- printf("Con resto di %d\n\n", r);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement