fedez_
03-01-2015, 13:54
Salve...sto facendo un esercizio sugli array ma non riesco a capire dove sto sbagliando.. :muro:
Consegna dell'esercizio!
//8. Scrivere un programma C che, dati 2 vettori, ognuno contenente 10 numeri interi positivi inseriti da tastiera, confronti il valore di ciascun elemento del primo con i valori di tutti gli elementi del secondo. Alla fine dovrà stampare a video il numero di elementi uguali e in quale posizione dei vettori questi si trovano.
Esempio:
Inserisco da tastiera i seguenti valori, rispettivamente per i vettori v e w
2 23 43 45 6 76 7 78 76 5
44 4 3 32 2 20 4 5 6 7
Valore Posiz. Vett. v Posiz. Vett. w
2 0 4
6 4 8
Numero di elementi uguali: 4
import java.util.Scanner;
public class Tabella {
public static void main (String[] args) {
Scanner tastiera = new Scanner(System.in);
int k1, w1;
int w[] = new int [4];
int k[] = new int [4];
int tabella[][]= new int [4][3];
int riga, colonna;
for (w1=0; w1<w.length; w1++)
w[w1] = tastiera.nextInt();
System.out.println("Hai completato il primo array!");
for (k1=0; k1<k.length; k1++)
k[k1] = tastiera.nextInt();
System.out.println("Hai completato il secondo array!");
for (k1=0; k1<k.length; k1++) {
for (w1=0; w1<w.length; w1++)
confronto(k1, w1, k[k1], w[w1], tabella);
}
for (riga=0; riga<4; riga++){
for (colonna=0; colonna<3; colonna++) {
System.out.print(tabella[riga][colonna]+" ");
}
System.out.println();
}
}
public static void confronto(int n1, int n2, int pos1, int pos2, int [][] tabella) {
if (n1==n2) {
int riga = 0;
valore(n1, riga, tabella, pos1, pos2);
riga++;
}
}
public static void valore (int n1, int riga, int [][] tabella, int pos1, int pos2) {
tabella[riga][0] = n1;
posK(pos1, riga, tabella, pos2);
}
public static void posK (int pos1, int riga, int [][] tabella, int pos2) {
tabella[riga][1] = pos1;
posW(pos2, riga, tabella);
}
public static int [][] posW (int pos2, int riga, int [][] tabella) {
tabella[riga][2] = pos2;
return tabella;
}
}
compila ma non funziona correttamente!!!
potete darmi una mano????
Consegna dell'esercizio!
//8. Scrivere un programma C che, dati 2 vettori, ognuno contenente 10 numeri interi positivi inseriti da tastiera, confronti il valore di ciascun elemento del primo con i valori di tutti gli elementi del secondo. Alla fine dovrà stampare a video il numero di elementi uguali e in quale posizione dei vettori questi si trovano.
Esempio:
Inserisco da tastiera i seguenti valori, rispettivamente per i vettori v e w
2 23 43 45 6 76 7 78 76 5
44 4 3 32 2 20 4 5 6 7
Valore Posiz. Vett. v Posiz. Vett. w
2 0 4
6 4 8
Numero di elementi uguali: 4
import java.util.Scanner;
public class Tabella {
public static void main (String[] args) {
Scanner tastiera = new Scanner(System.in);
int k1, w1;
int w[] = new int [4];
int k[] = new int [4];
int tabella[][]= new int [4][3];
int riga, colonna;
for (w1=0; w1<w.length; w1++)
w[w1] = tastiera.nextInt();
System.out.println("Hai completato il primo array!");
for (k1=0; k1<k.length; k1++)
k[k1] = tastiera.nextInt();
System.out.println("Hai completato il secondo array!");
for (k1=0; k1<k.length; k1++) {
for (w1=0; w1<w.length; w1++)
confronto(k1, w1, k[k1], w[w1], tabella);
}
for (riga=0; riga<4; riga++){
for (colonna=0; colonna<3; colonna++) {
System.out.print(tabella[riga][colonna]+" ");
}
System.out.println();
}
}
public static void confronto(int n1, int n2, int pos1, int pos2, int [][] tabella) {
if (n1==n2) {
int riga = 0;
valore(n1, riga, tabella, pos1, pos2);
riga++;
}
}
public static void valore (int n1, int riga, int [][] tabella, int pos1, int pos2) {
tabella[riga][0] = n1;
posK(pos1, riga, tabella, pos2);
}
public static void posK (int pos1, int riga, int [][] tabella, int pos2) {
tabella[riga][1] = pos1;
posW(pos2, riga, tabella);
}
public static int [][] posW (int pos2, int riga, int [][] tabella) {
tabella[riga][2] = pos2;
return tabella;
}
}
compila ma non funziona correttamente!!!
potete darmi una mano????