Advertisement
Dany1858

Esercizio 5.3 (potenza elementi di 2 vettori con funzione)

Sep 15th, 2014
635
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.47 KB | None | 0 0
  1. /*Si scriva un programma C che legga da tastiera due numeri interi corrispondenti
  2. a base ed esponente, ed esegua il calcolo della potenza base elevato esponente.
  3. Il programma deve invocare una funzione chiamata 'power' dal programma main, con
  4. il seguente prototipo:
  5. int power(int base, int exponent);
  6. Esempio:
  7. siano dati i seguenti valori base=3, exponent=2
  8. Il risultato di base elevato exponent sarà 9. In un altro caso con base=2,
  9. exponent=3
  10. Il risultato di base elevatore esponente sarà 8.
  11. Suggerimento:
  12. all’interno della funzione, calcolare la potenza moltiplicando iterativamente
  13. la base per se stessa un numero di volte pari all’esponente. */
  14.  
  15. /*Si scriva un programma C che, utilizzando la funzione power precedentemente
  16. definita, consenta di eseguire la potenza considerando gli elementi
  17. corrispondenti di 2 vettori, uno relativo alle basi ed uno relativo agli
  18. esponenti, e memorizzando il risultato in un terzo vettore.
  19. Esempio:
  20. siano dati due vettori vbase e vexponent come segue
  21. vbase                5,2,7,4,9,...
  22. vexponent            2,6,1,8,3,...
  23. Il risultato della operazione potenza fatta tra gli elementi corrispondenti
  24. sarà scritto in vris:
  25. vris                 25,64,7,65536,729,...
  26. Suggerimento:
  27. richiamare tante volte la funzione power quanti sono gli elementi dei vettori,
  28. ed ogni volta salvare il contenuto in una posizione opportuna di vris*/
  29.  
  30.  
  31. #include <stdio.h>
  32. #include <stdlib.h>
  33.  
  34. #define MAX 10
  35.  
  36. int power(int, int);
  37.  
  38. int vbase[MAX];
  39. int vexponent[MAX];
  40.  
  41. int main()
  42. {
  43.     int base, exponent, pwr, i, elem;
  44.     char risp='s';
  45.  
  46.   while(risp=='s'){
  47.  
  48.   printf("quanti elementi si vuole calcolare?\t");
  49.   scanf("%d", &elem);
  50.  
  51.                     //carico vettori
  52.   for(i=0; i<elem; i++){
  53.            printf("immettere la base %d:\t", i+1);
  54.            scanf("%d", &vbase[i]);
  55.            printf("immettere esponente relativo alla base %d:\t", i+1);
  56.            scanf("%d", &vexponent[i]);
  57.            printf("base ed esponente %d: %d^%d\n\n", i+1, vbase[i], vexponent[i]);
  58.   }
  59.  
  60.                     //calcolo e stampo risultati
  61.   printf("risultati:\n\n");
  62.  
  63.   for(i=0; i<elem; i++){
  64.            pwr= power(vbase[i], vexponent[i]);
  65.            printf("%d  ", pwr);
  66.   }
  67.  
  68.   printf("\n\nsi desidera ricominciare? s o n\t");
  69.   scanf("%s", &risp);
  70.   }
  71.   system("PAUSE"); 
  72.   return 0;
  73. }
  74.  
  75. int power(int a, int b)
  76. {
  77.     int i, c;
  78.     if(b==0)    c=1;
  79.     else
  80.     for(i=1, c=a; i<b; i++)    c*=a;
  81.    
  82.     return c;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement