[C++] Zle wyswietla min,max ,sr :-( help


(Deep0z) #1

Cześć wszystkim, mógł by ktoś spojrzeć na poniższy kod i spr dlaczego program wyświetla mi tak dziwne wyniki.

#include "stdafx.h"

#include 

#include 




int main()

{

	int n=0;

    int max,min;

	double sr;


	ifstream plik;

	plik.open("dane.txt");

	if(!plik)

	{

	cout<<"Blad";


	return 1;

	}

	plik>>n;

	int *tab=new int[n];

	for(int i=0; i

		plik>>tab[i];

	int suma=0;

	for(int k=0; k

	suma+=tab[k];


	for(i=0;i
	{

		if(tab[i]>max){max=tab[i];}

		if(tab[i]
		sr+=tab[i];

	}


	cout<<"Min: "<

	ofstream plik1;


	plik1.open("wyniki.txt");

	if(!plik1)

	{cout<<"Blad";

	}

	plik1<<"Suma wynosi: "<


	if(plik1)


	{

		cout<<" ***************"<
        cout<<"Suma wynosi: "<
		cout<<" ***************"<
	}


	plik.close();

	plik1.close();




	return 1;

}


Po zapisaniu program wyświetla + plik dane.txt  

[url]

http://img406.imageshack.us/img406/7994/68447681.jpg

[/url]




[/code]

([alex]) #2

Podaj jeszcze jak wygląda plik: "dane.txt".

Masz nie zainicjalizowaną zmienną sr , dodajesz do śmieci wartości z tablicy.

Masz nie zainicjalizowane zmienne min,max więc jeżeli przypadkiem zawierali jakieś dziwne dane to nadał będą je zawierać.

może lepiej:

if(n) // n - teoretycznie może być zerem{min=max=tab[0];int i=1;in;++i)