Witam. Jestem raczkującym kodziarzem. Mam zadanie tej treści:
Napisz program, który:
a) tworzy tablicę dwuwymiarową liczb całkowitych o rozmiarze N x N i wypełnia tablicę dodatnimi
wartościami pobranymi od użytkownika. W przypadku, gdy użytkownik poda wartość niespełniającą
kryterium, do tablicy wstawiona powinna być wartość 0. N powinno być zdefiniowane jako stała.
b) wypisuje na ekranie numer kolumny o najmniejszej sumie elementów.
W moim kodzie wszystko działa poprawnie do rozpoczęcia ostatniej pętli z zliczaniem sumy w kolumnach, później wszystko się coś psuje. Będę wdzięczny za wskazanie błędu oraz wyjaśnienie przyczyny.
#include <iostream>
#define N 4
using namespace std;
int pozycja(int tab[N][N])
{
int suma=0, najmniejsza=0, kolumna;
for(int i=0; i<N; i++)
{
for(int j=0; j<N; j++)
{
cin>>tab[i][j];
if(isdigit(tab[i][j]) || tab[i][j]<0)
tab[i][j]=0;
}
}
for(int i=0; i<N; i++)
{
for(int j=0; j<N; j++)
{
suma+=tab[j][i];
}
if(suma<najmniejsza);
{
najmniejsza=suma;
kolumna = i+1;
}
if(i==0)
najmniejsza=suma;
suma=0;
}
cout << najmniejsza << endl << suma << endl;
return kolumna;
}
int main()
{
int tab[N][N];
cout<<pozycja(tab);
return 0;
}