suma tablica

0

powiedzcie czemu nie sumje?


#include <iostream>
#include <fstream>

using namespace std;

int main()
{
int tablica[500] = {0};
int tmp = 0;
ifstream liczby("li.txt");

if (!liczby)
{
    cout << "Nie mozna otworzyc pliku";
    getchar();
    return 1;
}

while (!liczby.eof())
   liczby >> tablica[tmp++];

liczby.close();

{

for (int i; i<tmp; i++)
int suma = 0 ;
suma = suma + tablica[i];
cout << suma << endl;

}

getchar();
return 0;

}
pozdrawiam, proszę o pomoc

0
 #include <iostream>
#include <fstream>

using namespace std;

int main()
{
	int tablica[500] = {0};
	int tmp = 0;
	ifstream liczby("li.txt");

	if (!liczby)
	{
		cout << "Nie mozna otworzyc pliku";
		getchar();
		return 1;
	}

	while (!liczby.eof())
		liczby >> tablica[tmp++];

	liczby.close();



	{


		for (int i; i<tmp; i++)
			int suma = 0 ;
		suma = suma + tablica[i];
		cout << suma << endl;
	}

	getchar();
	return 0;
}

Nie lubię dawać odpowiedzi prosto na tacy, przerzuciłem ten kod przez formatera kodu źródłowego, powinieneś znaleźć błąd.

0

okej, zgadzam się dawanie odpowiedzi na tacy nie ma głębszego sensu, wydaje mi się że jestem już znacznie bliżej celu
poprawiałem troszkę
int suma = 0 ;
for (int i; i<tmp; i++)
{
suma = suma + tablica[i];
}
cout << suma<< endl;
tylko, że teraz wyświetla po chamsku 0

0

Jaką w chwili rozpoczęcia pętli ma wartość zmienna i, bo ja nie mam pojęcia?

0

ale heca zrobiłem sam!
dzięki, że nikt nie wkleił kodu.
może usunę ten post żeby nie robić spamu?

0

Mnie zastanawia dlaczego ludzie piszą programy w C++ bez zerknięcia nawet do biblioteki standardowej.

#include <iostream>
#include <fstream>
#include <numeric>
#include <iterator>

using namespace std;

int main(int argc, char* argv[])
{
	ifstream file("li.txt");

	cout << accumulate(istream_iterator<int>(file), istream_iterator<int>(), 0) << "\n";

	return 0;
}

Tak, dobrze widziałeś, sumę można obliczyć w jednej linijce.

0

W oryginalnym podejściu jest jeszcze jeden błąd, while (!liczby.eof()) liczby>>gdzies zrobi Ci o jeden przebieg za dużo, ze względu na to, że liczby.eof() będzie prawdą dopiero po próbie wczytania eofa. Dodatkowo gdy w pliku nie będą tylko liczby, to zmieni się to w pętlę nieskończoną.

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