vuoi
o PayPal
tutte le volte che vuoi
ESERCIZIO 10: Si consideri una sequenza di 10 numeri naturali pseudo-casuali compresi tra 1 e 100. Si
visualizzi la sequenza. Successivamente si visualizzi il naturale con la maggior quantità di
divisori. Per svolgere questo compito si definisca ed utilizzi una funzione che produca la quantità
di divisori di un dato intero.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define DIM 10
int divisori(int n){
int nDivisori=0;
int i;
for(i=1; i<=n; i++)
if(n%i==0)
nDivisori++;
return nDivisori;
}
int main()
{ srand(time(NULL));
int v[DIM], i, maxDiv, maxIndex;
for(i=0; i<DIM; i++){
v[i]=(rand()%100)+1;
printf("%d\t",v[i]);
}
maxIndex=0;
maxDiv=divisori(v[maxIndex]);
for(i=1; i<DIM; i++){
if(divisori(v[i])>maxDiv){
maxDiv=divisori(v[i]);
maxIndex=i;
}
}
printf("\nNaturale con più divisori (%d): %d\n",maxDiv,v[maxIndex]);
return 0;
}
ESERCIZIO 11:Riempire la prima colonna di una tabella di 10 righe con interi pseudo-casuali compresi
tra 10 e 100 e la seconda colonna della tabella con interi pseudo-casuali tali che l’intero sulla
i-esima riga e seconda colonna della matrice è compreso tra l’intero sulla i-esima riga e prima
colonna della matrice e 100. Successivamente interpretando la coppia di interi presenti su
ciascuna riga della matrice come il numeratore ed il denominatore di una frazione visualizzare la
frazione ridotta ai minimi termini. Per svolgere questo compito si definisca ed utilizzi una
funzione C che produce il massimo comune divisore di due dati interi.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define DIMR 10
#define DIMC 2
#define NUM 0
#define DEN 1
int mcd (int a, int b);
int main()
{ srand(time(NULL));
int mat[DIMR][DIMC], r, mcdT;
for (r=0; r<DIMR; r++) {
mat[r][NUM] = (rand()%91) +10;
mat[r][DEN] = 100- (rand()%(101-mat[r][NUM]));
}
for (r=0; r<DIMR; r++) {
printf("\n%da frazione: %d/%d", (r+1), mat[r][NUM], mat[r][DEN]);
mcdT = mcd(mat[r][NUM], mat[r][DEN]);
printf("\n%da frazione ridotta ai minimi termini: %d/%d\n", (r+1), mat[r][NUM]/mcdT,
mat[r][DEN]/mcdT);
}
return 0;
}
int mcd (int a, int b) {
int t;
while (b != 0) {
t = b;
b = a % b;
a = t;
}
return a;
}
ESERCIZIO 12: Si visualizzi una sequenza di 10 numeri naturali pseudo-casuali compresi tra 10 e 50. Si
acquisisca da tastiera un intero n. Successivamente per ciascun intero x della sequenza si
visualizzi il quoziente e il resto della divisione tra x e n. Per svolgere questo compito si definisca
ed utilizzi una funzione che inizializza le variabili puntate da due dati puntatori con il quoziente e
il resto della divisione tra due date variabili intere.
#include <stdio.h>
#include <stdlib.h>
#define DIM 10
void quozienteResto(int x, int n, int* q, int* r);
void quozienteRestoSomma(int x, int n, int* q, int* r);
int main()