[C++] array somma coppia elemeni

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
vfabrisv94
Prode Principiante
Messaggi: 45
Iscrizione: sabato 7 marzo 2015, 15:42
Sesso: Maschile

[C++] array somma coppia elemeni

Messaggio da vfabrisv94 »

Ciao a tutti, dovrei fare questo programma, "Si scriva una funzione che riceve in ingresso un array v ordinato di interi e un intero k.
La funzione restituisce 1 se esiste una coppia di elementi di v la cui somma sia uguale a k. "
Ecco il mio codice:


Codice: Seleziona tutto

#include<iostream>
using namespace std;
const int dim=100;

void carica_vettore(int vett[dim],int *punt_n){

    cout<<"Quanti elementi vuoi inserire nel vettore?"<<endl;
    cin>>*punt_n;
    cout<<endl<<endl;

    cout<<"Inserisci gli elementi nel vettore"<<endl;
    for(int i=0; i<*punt_n; i++)
    {
        cout<<"Inserisci il "<<i+1<<" elemento: ";
        cin>>vett[i];
    }
    cout<<endl<<endl;
}

void stampa_vettore(int vett[dim], int *punt_n){


    for(int i=0; i<*punt_n; i++)
    {
        cout<<vett[i]<<"\t";
    }
    cout<<endl;
}

int main(){

int V[dim];
int n;
int k;

bool sommaC=false;

carica_vettore(V,&n);
cout<<endl;

cout<<"Ecco V: "<<endl;
stampa_vettore(V, &n);
cout<<endl;

int somma=0;
for(int i=0; i<n; i++)
{
    somma=somma+V[i];
}cout<<endl;

cout<<"Inserisci un numero: ";
cin>>k;
cout<<endl;

for(int i=0; i<n; i++)
{
        if(somma==k)
        {
            sommaC=true;
        }
}

cout<<sommaC;


}

Potete dirmi dove sbaglio ?
Avatar utente
cortinico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 477
Iscrizione: venerdì 15 maggio 2015, 16:49
Desktop: Unity
Distribuzione: Ubuntu 15.04 amd64
Sesso: Maschile
Località: Pisa
Contatti:

Re: C++ array somma coppia elemeni

Messaggio da cortinico »

Ti chiede una coppia di elementi, te invece stai facendo la somma di tutti qui:

Codice: Seleziona tutto

for(int i=0; i<n; i++)
{
    somma=somma+V[i];
}
Devi usare due for annidati e considerare ogni coppia di elementi V e V[j] con i diverso da j
"Look wide, and even when you think you are looking wide – look wider still!"
http://ncorti.com
vfabrisv94
Prode Principiante
Messaggi: 45
Iscrizione: sabato 7 marzo 2015, 15:42
Sesso: Maschile

Re: [C++] array somma coppia elemeni

Messaggio da vfabrisv94 »

Ancora non sono molto pratico. Potresti farmi vedere come verrebbe ?
Avatar utente
cortinico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 477
Iscrizione: venerdì 15 maggio 2015, 16:49
Desktop: Unity
Distribuzione: Ubuntu 15.04 amd64
Sesso: Maschile
Località: Pisa
Contatti:

Re: [C++] array somma coppia elemeni

Messaggio da cortinico »

Codice: Seleziona tutto

#include <iostream>
using namespace std;

const int dim = 100;

void carica_vettore(int vett[dim], int *punt_n) {

	cout << "Quanti elementi vuoi inserire nel vettore?" << endl;
	cin >> *punt_n;
	cout << endl << endl;

	cout << "Inserisci gli elementi nel vettore" << endl;
	for (int i = 0; i < *punt_n; i++) {
		cout << "Inserisci il " << i + 1 << " elemento: ";
		cin >> vett[i];
	}
	cout << endl << endl;
}

void stampa_vettore(int vett[dim], int *punt_n) {

	for (int i = 0; i < *punt_n; i++) {
		cout << vett[i] << "\t";
	}
	cout << endl;
}

int main() {

	int V[dim];
	int n;
	int k;

	carica_vettore(V, &n);
	cout << endl;

	cout << "Ecco V: " << endl;
	stampa_vettore(V, &n);
	cout << endl;

	cout << "Inserisci un numero: ";
	cin >> k;
	cout << endl;

	for (int i = 0; i < (n-1); i++) {
		for(int j = (i + 1); j < n; j++){
			if ((V[i] + V[j]) == k){
				cout << "Ho trovato gli elementi V[" << i << "] = " << V[i];
				cout << " e V[" << j << "] = " << V[j] << " che hanno somma " << k << endl;
			}
		}
	}
}
"Look wide, and even when you think you are looking wide – look wider still!"
http://ncorti.com
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Google [Bot], neolight69 e 8 ospiti