program w C - pomocy

0

dla podanej macierzy 4x6 mam stworzyc program, ktory na podstawie tej macierzy utworzy dwa wektory:

V – czteroelementowy zawierający maksymalne wartości z każdego
wiersza
W – sześcioelementowy zawierający minimalną wartość z każdej
kolumny

wiem jak wyglada kod, ale go do konca nie rozumiem. zaczynamy od definiowania, tutaj wiem co trzeba zdefiniowac. dalej widze, ze jest stworzona pętla dla wierszy, ale nie wiem co robi to wyrazenie v[i]=0, tak samo w[i]=9; (generalnie czaje jak dziala petla, ale tutaj tej instrukcji nie rozumiem). prosze o wyjasnienie tego kodu krok po kroku:D

#include <stdio.h>
main(){
int i, j, V[4], W[6];
int M[4][6]={{3,1,6,7,0,9},{3,6,8,6,2,4},{5,0,3,4,3,7},{3,5,2,1,8,3}};
for ( i = 0 ; i < 4 ; i++ ){
V[i]=0;
}
for ( i = 0 ; i < 6 ; i++ ){
W[i]=9;
}
for ( i = 0 ; i < 6 ; i++ ){
for ( j = 0 ; j < 4 ; j++ ){
if (V[j] < M[j][i]){
V[j] = M[j][i];
}
}
}
for ( i = 0 ; i < 4 ; i++ ){
for ( j = 0 ; j < 6 ; j++ ){
if (W[j] > M[i][j]){
W[j] = M[i][j];
}
}
}
printf("Macierz M:\n\n");
for ( i = 0 ; i < 4 ; i++ ){
for ( j = 0 ; j < 6 ; j++ ){
printf("%d\t",M[i][j]);
}
printf("\n");
}
printf("\nWektor V:\n\n");
for ( i = 0 ; i < 4 ; i++ ){
printf("%d\t",V[i]);
}
printf("\n");
printf("\nWektor W:\n\n");
for ( i = 0 ; i < 6 ; i++ ){
printf("%d\t",W[i]);
}
printf("\n");
return 0;
}

0

Warto wstawić kod w tagi, będzie bardziej czytelnie.
Co do instrukcji to jest to zwykłe przypisanie wartości.

0

wiem, ze jest to przypisanie wartosci, ale dlaczego dla v[i] przypisujemy 0, a w[i] 9?

0
rafczyk napisał(a)

wiem, ze jest to przypisanie wartosci, ale dlaczego dla v[i] przypisujemy 0, a w[i] 9?

Zastanów się co ma na końcu w nich być, nie bez powodu w v jest na początku najmniejsza "dopuszczalna wartość" a w w największa. przyjrzyj się 3 i 4 pętli, tam znajdziesz odpowiedź.

0

Moim zdaniem, ten fragment

        for ( i = 0 ; i < 4 ; i++ ){
                V[i]=0;
        }
        for ( i = 0 ; i < 6 ; i++ ){
                W[i]=9;
        }

jest zły (chociaż dla tej konkretnej macierzy M działa).

        for ( i = 0 ; i < 4 ; i++ ){
                V[i]=M[i,0];
        }
        for ( i = 0 ; i < 6 ; i++ ){
                W[i]=M[0,i];
        }

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