Programma c++ con più vettori

di il
5 risposte

Programma c++ con più vettori

Ciao a tutti! Oggi ho provato a fare questo programma, volevo sapere se per voi era giusto dato che ho trovato una soluzione completamente diversa dalla mia

ESERCIZIO: definire la funzione sonosuperato con parametri:
a di tipo vettore di 500 int;
b di tipo vettore di 499 int;
c di tipo puntatore/riferimento ad un int
La funzione per ogni posto i del vettore a, il valore a deve essere copiato nel vettore b solo se esiste almeno una posizione di j maggiore di i tale che a<a[j]. La funzione deve inoltre scrivere in c il numero di valori copiati.
Nella funzione main invece, dichiarare un vettore m di 500 int , n di 499 int e una variabile p di tipo int.
Ripetere le seguenti operazioni fino a quando la chiamata della funzione sonosuperato() scrive in tutti i posti del vettore n dei valori:
a- riempire il vettore m con valori letti da standard input
b- eseguire la funzione sonosuperato() applicata al vettore m inserendo i risultati nel vettore n e nella variabile p.

#include <iostream>
using namespace std;

void sonosuperato(int a[500], int b[499], int &c)
{
	int i, j, conta, k=0, copia = 0;

	for (i = 0; i < 500; i++)
	{
		conta = 0;

		for (j = 0; j < 500; j++)
		{
			if (a[i] < a[j])
			{
				conta++;
			}
			if (conta == 1)
			{
				b[k] = a[i];
				k++;
				copia++;
			}
		}
	}
	c = copia;
}

int main()
{
	int m[500], n[499], p, i;
	do{
		for (i = 0; i < 500; i++)
		{
			cin >> m[i];
		}
		sonosuperato(m, n, p);

	} while (!(p == 499)); 

	return 0;

	}

5 Risposte

  • Re: Programma c++ con più vettori

    Il ciclo usa p per risolvere il punto " fino a quando la chiamata della funzione sonosuperato() scrive in tutti i posti del vettore n dei valori".
  • Re: Programma c++ con più vettori

    oregon ha scritto:


    Il ciclo usa p per risolvere il punto " fino a quando la chiamata della funzione sonosuperato() scrive in tutti i posti del vettore n dei valori".
    Ah ok! Grazie!
  • Re: Programma c++ con più vettori

    oregon ha scritto:


    Il ciclo usa p per risolvere il punto " fino a quando la chiamata della funzione sonosuperato() scrive in tutti i posti del vettore n dei valori".
    Per il resto credi sia giusto?
  • Re: Programma c++ con più vettori

    giulia18395 ha scritto:


    La funzione per ogni posto i del vettore a, il valore a deve essere copiato nel vettore b solo se esiste almeno una posizione di j maggiore di i tale che a<a[j].

    In pratica dal vettore a bisogna prendere tutti gli elementi seguiti da almeno un valore maggiore?
    Per esempio dato il seguente array:

    a: 7 2 12 5 9 1

    sarà dopo una singola chiamata a funzione

    b: 7 2 5

    giusto?
    Inoltre ogni volta che richiameremo la funzione, essa preleverà da a sempre gli stessi (3 nell'esempio che ho fatto) valori... sei d'accordo? In tal caso al fine di riempire l'array b sarebbe inutile scorrere più volte l'array a.
  • Re: Programma c++ con più vettori

    Nippolo ha scritto:


    giulia18395 ha scritto:


    La funzione per ogni posto i del vettore a, il valore a deve essere copiato nel vettore b solo se esiste almeno una posizione di j maggiore di i tale che a<a[j].

    In pratica dal vettore a bisogna prendere tutti gli elementi seguiti da almeno un valore maggiore?
    Per esempio dato il seguente array:

    a: 7 2 12 5 9 1

    sarà dopo una singola chiamata a funzione

    b: 7 2 5

    giusto?
    Inoltre ogni volta che richiameremo la funzione, essa preleverà da a sempre gli stessi (3 nell'esempio che ho fatto) valori... sei d'accordo? In tal caso al fine di riempire l'array b sarebbe inutile scorrere più volte l'array a.


    sisi giusto! o almeno anche io ho capito così (non sono sempre chiarissimi questi esercizi)
Devi accedere o registrarti per scrivere nel forum
5 risposte