Aiuto array con files

di il
3 risposte

Aiuto array con files

Salve a tutti. Ci è stato chiesto di scrivere un programma che riempia un array A[6][8] con interi letti da un file. Bisogna anche dichiarare un array booleano B[6][8]. Dopodiche, assegnare valori di tipo bool agli elementi di B in modo tale che, per ogni i in [0..5] e j in [0..7], B[j]=true se e solo se tutti gli elementi della riga A sono presenti anche nella colonna A[][j]. Infine, stamapre l'array B in un file output.

Questo è il programma che ho scritto, ma non funziona. La compilazione funziona senza errori, ma l'esecuzione non riesce. Premetto che sono proprio un novellino in c++ e specialmente in questi argomenti, essendo il primo rogramma in cui utilizzo i file.

#include<iostream>
#include<fstream>
using namespace std;
main()                       
{ ifstream IN("input");
  ofstream OUT("output");
  if (IN && OUT)
    { int i=0, j=0, A[6][8]; 
      while (i<6)
	{while (j<8)
	    { IN>>A[i][j];
	      j++;}
	  i++;}                
      i=0, j=0;
      bool B[6][8];
      while (i<6)
	{ while (j<8)
	    {bool match= true; int z=0;
	      while (z<6 && match==true)
		{ int k=0; match= false; bool ok=false;
		  while (k<8 && ok==false)
		    { if (A[i][z]==A[k][j])
			    ok=true; k++;}
		  if (ok==true)
		    match==true; z++; }
	      B[i][j]==match;
	      OUT<<B[i][j];}
	  j++;}
      i++;
      IN.close(); OUT.close();}
  else 
    cout<<"errore con  files";}
Se qualcuno riuscisse a darmi una mano sarebbe apprezzato perchè non capisco davvero cosa ci sia di sbagliato.

3 Risposte

  • Re: Aiuto array con files

    Per favore, utilizza i tag code per inserire il codice e spiega cosa significa "non riesce".
  • Re: Aiuto array con files

    H modificato il messagio inserendo il tag. Non funziona nel senso che il file output mi risulta di dimensioni spropositate ( dell'ordine di 600 mb), e non riesco neanche ad aprirlo credo proprio per le dimensioni.
  • Re: Aiuto array con files

    Premetto che ho letto da mobile e molto di fretta, ma credo che le righe
    match == true; z++;
    B[i][j] == match; 
    dovrebbero contenere un solo uguale, altrimenti cosi stai effettuando un confronto piuttosto che un'assegnazione
Devi accedere o registrarti per scrivere nel forum
3 risposte