Liczenie elementów ujemnych w tablicy

0
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main()
{ 
srand(time (0));
int tab[4][4],i,j,s;
  for(i=0; i<4; i++)
  for(i=0; j<4; i++)
  {
    tab[i][j]=rand()%20;
printf("tab[%d][%d]=%d\n",i,j,tab[i][j]);
 
 }        


s=0;
for(i=1 ; i<10 ; i++){

for(j=0 ; j<(i-1) ; j++)
if ( (tab[i][j]) <  0 )
{
s+=tab[i][j];
}
}
     
printf("elementów ujemnych jest: %d\n", i);
printf("elementów ujemnych jest: %d\n", j);  

       
}

co w tym kodzie jest nie tak?

0

Prościej wymienić co w tym kodzie TAK - jest to pierwsze 2 wiersza.

  1. Programowanie bez formatowania to jak chodzenie ze spuszczonymi na kostki spodniami, po pierwsze niewygodnie, po drugie nieprzyzwoicie wygląda.
  2. Po kiego ci <math.h> ?
  3. Nie używaj notacji przyrostkowej (i++) jeżeli możesz użyć notacji przedrostkowej (++i)
  4. Z zadania wynika że tabela ma zawierać liczby ujemne, a generujesz same dodatnie
  5. Z zadania wynika że masz zliczać dla każdego wiersza zaś s zerujesz tylko raz
  6. Tabela ma wymiary 4x4 zliczasz tak jakby miała wymiary 10x1x0
  7. Ma być ilość ujemnych dla wiersza a zliczasz tylko pod przekątną
  8. To co program wyświetla nie ma nic a nic wspólnego z ilością ujemnych elementów
  9. Brak return
0

a reszta?

0

podpowiesz cos jak to ma wygladac dla ujemnych elementów?

0

dasz jakąs mała podpowiedz do tego kodu?

0

czyli tylko ten fragment mam poprawic

s=0;
for(i=1 ; i<10 ; i++){
 
for(j=0 ; j<(i-1) ; j++)
if ( (tab[i][j]) <  0 )
{
s+=tab[i][j];
}
}
 
printf("elementów ujemnych jest: %d\n", i);
printf("elementów ujemnych jest: %d\n", j);  
 
 
}
0
_13th_Dragon napisał(a):

Nie używaj notacji przyrostkowej (i++) jeżeli możesz użyć notacji przedrostkowej (++i)

Z ciekawości się wtrącę i zapytam dlaczego? tzn. czemu ++i jest lepsze od i++? Czy w pętli for również lepiej stosować for(int i=0; i<N; ++i) niż for(int i=0; i<N; i++)?
Z góry dzięki za wyjaśnienie

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