Salve a tutti! Mi trovo a riscrivere di nuovo su questo forum, perché l'altro giorno ho fatto un esame di C dove un esercizio chiedeva di scrivere una funzione che dato un vettore, la sua dimensione e un numero k in input, ritornasse il numero delle coppie degli elementi la cui somma fosse stata maggiore di k.
Ecco il codice che ho scritto così che possiate capire meglio:
Fin qua tutto ok... L'esercizio poi chiedeva di fare una funzione più efficiente poichè sfruttasse il fatto che l'array avesse gli elementi ordinati in modo crescente. Mi sapreste dare qualche consiglio?codice:#include <stdio.h> int func(int T[], int D, int k); int main() { int num; int V[7] = {1,4,3,2,5,6}; printf("Inserisci un numero:\n"); scanf("%d",&num); printf("%d\n", func(V, 7, num)); return 0; } int func(int T[], int D, int k) { int i,j,count,somma; count = 0; somma = 0; for(i = 0; i < D; i++) { for(j = i + 1; j < D; j++) { somma = T[i] + T[j]; if(somma > k) { printf("\n%d+%d\n", T[i], T[j]); count++; } } } return count; }

Rispondi quotando