Tablice dwuwymiarowe — program nie działa

0

Potrzebuję pomocy, program mi nie działa i naprawdę nie wiem już co jest nie tak... Tablice dwuwymiarowe..
Poniżej podaje kod

#include <isotream>
#include <fstream>
using namespace std:
int t[10][20], czter=0, mczter=0, wczter=0, j, i, lw=0:
fstream plik:
int main()
{
    plik.open("dane.txt", ios::in):
    for (j=0;j<=20;j++)
    {
        for(i=0;i<10;i++)
        {
            plik>>t[i][j]:
            if((t[i][j])==4)czter++:
        }
        if (mczter<czter)
        {
            mczter=czter:
            wczter=j+1:
        }
        czter=0:
    }
    cout<<"Wiersz i ilosc czworek: "<<wczter<<", "<<mczter<<endl:
    cout<<"Ilosc wierszy bez czworki: ":
    for(j=0;j<20;j++)
    {
        for(i=0;i<10;i++)
        {
            plik>>t[i][j];
            if((t[i][j])==4)czter++:
        }
        if(czter==0)    cout<<j+1<<endl:
        czter=0:
    }
    return 0:
}
4

@JokerProgramista: Zacząłbym od sformatowania kodu, następnie sprawdziłbym czym kończy się instrukcja w c++ i przeczytał podkreślone przez IDE błędy.

Trochę nie chce mi się wierzyć, że sam to napisałeś, a nie umiesz napisać podstawowej instrukcji, która się kompiluje.

5

Przede wszystkim pasowałoby napisać co ma program robić oraz w czym jest problem, bo to:

JokerProgramista napisał(a):

Potrzebuję pomocy, program mi nie działa i naprawdę nie wiem już co jest nie tak... Tablice dwuwymiarowe..

to nie jest opis problemu. Nikt nie będzie marnował czasu na domyślanie się o co chodzi.

3
  • Co to takiego: <isotream>?
  • t[10][20] oznacza że pierwszy wymiar musi być z zakresie 0..9 (razem 10 wierszy), zaś drugi 0..19 (razem 20 kolumn). Tu j<=20 ewidentnie wykraczasz.
  • Zamiast średnika wszędzie stawiasz dwukropek z tablicy przepisywałeś nie mając pojęcia o co biega?

Poza tym:

  • Nie potrzebujesz tu tablicy.
  • Nie potrzebujesz sztucznych ograniczeń co do tekstu w pliku.
  • Nie potrzebujesz włożonych pętli.
  • Wystarczy koszt pamięciowy O(1)
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
	fstream file("dane.txt");
	size_t rownr=0,fours=0,nofor=0,maxfor=0,rowfor=0;
	for(int ch;ch=file.get();)
	{
		if((ch=='\n')||(ch==EOF))
		{
			++rownr;
			if(!fours) ++nofor;
			if(maxfor<fours)
			{
				maxfor=fours;
				rowfor=rownr;
			}
			if(ch==EOF) break;
			fours=0;
		}
		else if(ch=='4') ++fours;
	}
    cout<<"Maksymalna ilosc czworek w wierszu "<<rowfor<<" wynosi "<<maxfor<<endl;			
    cout<<"Ilosc wierszy bez czworki: "<<nofor<<endl;
    return 0;
}
0

Na pierwszy rzut oka to zamien "j" z "i" w tych petlach i powinno pomoc.
Na t[j][i]

0

Dobra, a teraz sie przyznaj, skad ten kod skopiowales? i jak wpadles na stawianie dwukropka zamiast srednika?

0

bitcoin :oo

1 użytkowników online, w tym zalogowanych: 0, gości: 1