Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wczytywanie z pliku - min i max

Ostatnio zmodyfikowano 2016-01-17 20:33
Autor Wiadomość
Skipper11
Temat założony przez niniejszego użytkownika
Wczytywanie z pliku - min i max
» 2016-01-16 19:08:20
Witam, właśnie dzióbię sobie taką prostą rzecz "Napisz program, który zapisze w pliku tekstowym 100 losowych liczb oddzielonych
średnikami. Następnie napisz program który wczyta powyższe liczby z pliku i wypisze
ich wartość średnią, wartość maksymalną oraz wartość minimalną."
No i robię teraz drugą cześć i z max i min mam problem.

 
C/C++
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <conio.h>
#include <stdio.h>

using namespace std;

int main()
{
    FILE * plik;
    plik = fopen( "liczby.txt", "r" );
    int liczba, srednia = 0, min = 0, max = 0;
   
    if( plik == NULL )
    {
        cout << "Nie udalo sie otworzyc pliku" << endl;
    }
    else
    {
        for( int i = 0; i < 100; i++ )
        {
            fscanf( plik, "%d , ", & liczba );
            if( liczba < min )
            {
                min = liczba;
            }
           
            srednia += liczba;
        }
        srednia = srednia / 100;
        cout << "Srednia podanych liczb wynosi: " << srednia << endl;
        //cout << "MAX podanych liczb wynosi: " << max<< endl;
        cout << "MIN podanych liczb wynosi: " << min << endl;
    }
   
    system( "pause" );
    return 0;
}
Wiem, ze muszę pierwszej wyczytywanej liczbie przypisać wartość minimum, a potem sprawdzać już w ifie jak tam mam.
Nie wiem jednak jak to przypisanie tu zrobić, bo w pętli nie ma sensu na początku, bo za każdym razem by robiło przypisanie.
P-143596
carlosmay
» 2016-01-16 21:25:25
C/C++
fscanf( plik, "%d , ", & min ); // pierwsza odczytana przypisz do min
for( int i = 0; i < 100; i++ )
{
    fscanf( plik, "%d , ", & liczba );
    if( liczba < min ) // w przeciwnym razie tutuj porownujesz liczby z zerem
    {
        min = liczba;
    }
   
    srednia += liczba;
}
Jeżeli liczby są tylko dodatnie takie rozwiązanie może być.
Jeżeli mogą być też ujemne należy pierwszą odczytaną liczbę zapisać także do zmiennej 'max'.

P-143602
Skipper11
Temat założony przez niniejszego użytkownika
» 2016-01-17 20:33:35
Ach, w ten sposób. No jasne, przed pętlą przecież można było to wczytać.
Dzieki wielkie ;)
P-143688
« 1 »
  Strona 1 z 1