Hai tolto dal testo il testo del compito: male!
#include <iostream>
#define DIM 6
Nel testo che hai fatto sparire c'era scritto 100. Quanto scritto nel testo di un compito/esame/progetto/lavoro non va MAI cambiato arbitrariamente. Se necessario si fa ma si giustifica.
void maxnext(int a[], int b[], int *c)
Usa nomi SIGNIFICATIVI per le variabili: impieghi due secondi in più per scriverli e un sacco di tempo in meno a dorreggere/debuggare il codice.
{
int k, j, trovato;
*c = 0;
for (k = 0; k < DIM; k++)
{
trovato = 0;
j = k;
}
Quel ciclo è del tutto inutile, proprio del tutto!
while (trovato == 0 && j < DIM && j <= k + a[k])
{
if (a[k] <= b[j])
{
trovato = 1;
}
j++;
}
if (trovato == 0)
{
a[k] = b[j];
*c = *c + 1;
}
}
Non sapendo cosa devi fare e mancando del tutto i commenti (perché?) diventa difficile capire il codice.
int main()
{
int x[DIM], y[DIM];
int i, k;
cout << "carico y:";
for (i = 0; i < DIM; i++)
{
cin >> y[i];
}
do
{
cout << "carico x:";
for (i = 0; i < DIM; i++)
{
do
{
cin >> x[i];
} while (x[i] <= 0);
}
maxnext(x, y, &k);
} while (k!=DIM);
return 0;
}
Spiega, in italiano e con parole semplici cosa deve fare la funzione maxnext. Magari scopriamo che passare i parametri per valore non va bene!