In ogni caso, un esempio di codice potrebbe essere

codice:
	int vec[] = {3,5,10,7,5};
	int occ[18] = {0};
	int i, j, size = sizeof(vec)/sizeof(int);

	for(i=0; i<size; i++)
	{
		printf("%d ", vec[i]);
		occ[vec[i]]++;
		
		for(j=i+1; j<size; j++)
		{
			printf("%d ", vec[i]+vec[j]);
			occ[vec[i]+vec[j]]++;
		}
	}

	printf("\nOccorrenze\n");
	for(i=0; i<18; i++)
		if(occ[i])
			printf("%d = %d\n", i, occ[i]);

	return 0;
che è veloce ma ha un limite ... per valori piccoli va bene perché il vettore occ non è eccessivamente grande, altrimenti devi usare un altro approccio.

Il massimo del vettore occ lo trovi facilmente con un ciclo for ... ma lo lascio a te.