Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Si scriva un programma C che legga da tastiera due numeri interi corrispondenti
- a base ed esponente, ed esegua il calcolo della potenza base elevato esponente.
- Il programma deve invocare una funzione chiamata 'power' dal programma main, con
- il seguente prototipo:
- int power(int base, int exponent);
- Esempio:
- siano dati i seguenti valori base=3, exponent=2
- Il risultato di base elevato exponent sarà 9. In un altro caso con base=2,
- exponent=3
- Il risultato di base elevatore esponente sarà 8.
- Suggerimento:
- all’interno della funzione, calcolare la potenza moltiplicando iterativamente
- la base per se stessa un numero di volte pari all’esponente. */
- /*Si scriva un programma C che, utilizzando la funzione power precedentemente
- definita, consenta di eseguire la potenza considerando gli elementi
- corrispondenti di 2 vettori, uno relativo alle basi ed uno relativo agli
- esponenti, e memorizzando il risultato in un terzo vettore.
- Esempio:
- siano dati due vettori vbase e vexponent come segue
- vbase 5,2,7,4,9,...
- vexponent 2,6,1,8,3,...
- Il risultato della operazione potenza fatta tra gli elementi corrispondenti
- sarà scritto in vris:
- vris 25,64,7,65536,729,...
- Suggerimento:
- richiamare tante volte la funzione power quanti sono gli elementi dei vettori,
- ed ogni volta salvare il contenuto in una posizione opportuna di vris*/
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 10
- int power(int, int);
- int vbase[MAX];
- int vexponent[MAX];
- int main()
- {
- int base, exponent, pwr, i, elem;
- char risp='s';
- while(risp=='s'){
- printf("quanti elementi si vuole calcolare?\t");
- scanf("%d", &elem);
- //carico vettori
- for(i=0; i<elem; i++){
- printf("immettere la base %d:\t", i+1);
- scanf("%d", &vbase[i]);
- printf("immettere esponente relativo alla base %d:\t", i+1);
- scanf("%d", &vexponent[i]);
- printf("base ed esponente %d: %d^%d\n\n", i+1, vbase[i], vexponent[i]);
- }
- //calcolo e stampo risultati
- printf("risultati:\n\n");
- for(i=0; i<elem; i++){
- pwr= power(vbase[i], vexponent[i]);
- printf("%d ", pwr);
- }
- printf("\n\nsi desidera ricominciare? s o n\t");
- scanf("%s", &risp);
- }
- system("PAUSE");
- return 0;
- }
- int power(int a, int b)
- {
- int i, c;
- if(b==0) c=1;
- else
- for(i=1, c=a; i<b; i++) c*=a;
- return c;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement