Errore cicli

di il
9 risposte

Errore cicli

Ciao! Vorrei un aiuto per capire dove sbaglio in questo esercizio

ESERCIZIO=Scrivere in d, la
posizione di un qualsiasi elemento del vettore a maggiore di ogni elemento del vettore b. Se tale elemento non esiste d=-1. Con a vettore di 10 interi , b vettore da 10 interi e d intero.
#include <iostream>
using namespace std;

int main()
{
	int a[10], b[10], d;
	int i, j;
	int conta;

	for (i = 0; i < 10; i++)
	{
		cin >> a[i];
	}
	cout << "vettore b: ";
	for (j = 0; j < 10; j++)
	{
		cin >> b[j];
	}

	for (i = 0; i < 10; i++)
	{
		for (j = 0; j < 10; j++)
		{
			conta = 0;
			if (a[i]>b[j])
			{
				conta++;
			}
		}
		if (conta == 1)
		{
			d = i;
		}
		else { d = -1; }

	}
	

	cout << "d: " << d << endl;
	system("pause");
	return 0;
}

9 Risposte

  • Re: Errore cicli

    Non sono riuscito a capire con quale procedimento vorresti arrivare alla soluzione.

    Quel tuo conta quando è uguale a 1 significa che ha trovato un solo elemento per cui a>b[j] quindi non sarebbe comunque la soluzione giusta.

    potresti fare un procedimento molto più semplice:

    for (i = 0; i < 10; i++)
       {
           j=0;
           while(a[i] > b[j] && j < 10) {
                j++;
           }
            if(j == 10) {
                d=i;
                break;
            } else {
            	d=-1;
           }
       }
  • Re: Errore cicli

    @giulia
    basta aggiustare la seguente condizione
    if(conta == 1)
    In ogni caso per un array di 10 elementi quanti valori di d ti aspetteresti?
  • Re: Errore cicli

    Eduadie ha scritto:


    Non sono riuscito a capire con quale procedimento vorresti arrivare alla soluzione.

    Quel tuo conta quando è uguale a 1 significa che ha trovato un solo elemento per cui a>b[j] quindi non sarebbe comunque la soluzione giusta.

    potresti fare un procedimento molto più semplice:

    for (i = 0; i < 10; i++)
       {
           j=0;
           while(a[i] > b[j] && j < 10) {
                j++;
           }
            if(j == 10) {
                d=i;
                break;
            } else {
            	d=-1;
           }
       }
    Perfetto! Modificato...Grazie mille!!
  • Re: Errore cicli

    Nippolo ha scritto:


    @giulia
    basta aggiustare la seguente condizione
    if(conta == 1)
    In ogni caso per un array di 10 elementi quanti valori di d ti aspetteresti?
    Ho risolto con la soluzione sopra.. non ci avevo proprio pensato
  • Re: Errore cicli

    giulia18395 ha scritto:


    Eduadie ha scritto:


    Non sono riuscito a capire con quale procedimento vorresti arrivare alla soluzione.

    Quel tuo conta quando è uguale a 1 significa che ha trovato un solo elemento per cui a>b[j] quindi non sarebbe comunque la soluzione giusta.

    potresti fare un procedimento molto più semplice:

    for (i = 0; i < 10; i++)
       {
           j=0;
           while(a[i] > b[j] && j < 10) {
                j++;
           }
            if(j == 10) {
                d=i;
                break;
            } else {
            	d=-1;
           }
       }
    Perfetto! Modificato...Grazie mille!!
  • Re: Errore cicli

    Eduadie ha scritto:


    Non sono riuscito a capire con quale procedimento vorresti arrivare alla soluzione.

    Quel tuo conta quando è uguale a 1 significa che ha trovato un solo elemento per cui a>b[j] quindi non sarebbe comunque la soluzione giusta.

    potresti fare un procedimento molto più semplice:

    for (i = 0; i < 10; i++)
       {
           j=0;
           while(a[i] > b[j] && j < 10) {
                j++;
           }
            if(j == 10) {
                d=i;
                break;
            } else {
            	d=-1;
           }
       }
  • Re: Errore cicli

    Nippolo ha scritto:


    @giulia
    basta aggiustare la seguente condizione
    if(conta == 1)
    In ogni caso per un array di 10 elementi quanti valori di d ti aspetteresti?
    Posso chiedervi anche un'altra cosa riguardande ,credo, sola la sintassi di un esercizio?
  • Re: Errore cicli

    Eduadie ha scritto:


    Non sono riuscito a capire con quale procedimento vorresti arrivare alla soluzione.

    Quel tuo conta quando è uguale a 1 significa che ha trovato un solo elemento per cui a>b[j] quindi non sarebbe comunque la soluzione giusta.

    potresti fare un procedimento molto più semplice:

    for (i = 0; i < 10; i++)
       {
           j=0;
           while(a[i] > b[j] && j < 10) {
                j++;
           }
            if(j == 10) {
                d=i;
                break;
            } else {
            	d=-1;
           }
       }
    Posso chiedervi anche un'altra cosa riguardande ,credo, sola la sintassi di un esercizio?
  • Re: Errore cicli

    In un altro thread
Devi accedere o registrarti per scrivere nel forum
9 risposte