Wątek przeniesiony 2017-10-20 22:36 z C/C++ przez kq.

Mały problem z alokacją dynamiczną

0

Witajcie, stawiam pierwsze kroki w programowaniu i doszedłem do momentu, w którym nie jestem w stanie znaleźć błędu w kodzie.

Program ma problem ze zlinkowaniem liczby największej - wyświetla ogromne losowe liczby, przy czym wyznaczanie wartości minimalnej działa poprawnie. Czy ktoś jest w stanie znaleźć ten błąd?

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, q;
    int suma = 0;
    int* p;
    unsigned int N;
    float srednia;

    printf("Podaj liczbe elementow tablicy: ");
    scanf("%d", &N);

    srand((unsigned)time(NULL));
    int* tab;
    tab = (int*)malloc(N * sizeof(int));
    for (i = 0; i < N; i++) {
        tab[i] = rand() % 100 + 1;

        printf("%d liczba to %d \n", i + 1, tab[i]);
        suma += tab[i];
    }
    srednia = (float)suma / N;
    printf("Srednia= %.2f \n", srednia);
    int max, min;

    {
        tab[0] = max;
        for (i = 1; i < N; i++) {
            if (max < tab[i])
                max = tab[i];
        }
        printf("Wartosc maksymalna to: %d \n", max);
    }
    tab[0] = min;
    for (i = 1; i < N; i++) {
        if (min > tab[i])
            min = tab[i];
    }
    printf("Wartosc minimanlna to: %d", min);
    free(tab);
    return 0;
}
1
tab[0]=max;
tab[0]=min;

W złą stronę przypisujesz.

0
kq napisał(a):
tab[0]=max;
tab[0]=min;

W złą stronę przypisujesz.

dziękuję serdecznie :) domyślałem się, że ktoś doświadczony zauważy błąd na pierwszy rzut oka

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