Zamiana wiersza z liczbami ujemnymi na wiersz z liczbami dodatnimi

0

Witam,

Mam tablice dwuwymiarową 10x20. Jeden wiersz ma same liczby ujemne, a jeden wiersz same liczby dodatnie. Chciałem zamienić te wiersze.

Miałem taki pomysł aby wiersz z liczbami ujemnymi zapisać do innej tablicy z wymiarami [0][20], tak samo zrobić z liczbami dodatnimi.

Tylko mam problem bo nie wiem jak w pętli sprawdzić który wiersz ma same elementy dodatnie i ujemne.

0

Nie rozumiem pytania. Lecisz przez cały wiersz i sprawdzasz czy wszystkie liczby są < (>) od zera.

0

Bo np.tak:

#include <cstdio.h>

#define n 10
#define m 20

int main()
{
    float tablica[n][m];
    float dodatnie[0][m];
    float ujemne[0][m];
    
    int i,j;
    
    for(i = 0;i < n; i++)
    {
        for(j = 0;j < m;j++)
        {
           if(tablica[i][j] > 0)
           {
               dodatnie[0][j] = tablica[i][j];
           }
        }
    }
} 

wyszuka mi wszystkie liczby dodatnie w tej tablicy. A ja chcę konkretnie jeden wiersz w którym są same liczby dodatnie i nie wiem jak go wyszukać.

0
#include <stdio.h>
 
#define Y 10
#define X 20
 
int main()
  {
   float tb[Y][X];
   size_t y,x,cnt;
   for(y=0;y<Y;++y) for(x=0;x<X;++x) tb[y][x]=(y==3?-1.0:1.0)*(y+1)*(x+1)/100;
   for(y=0;y<Y;++y,putchar('\n')) for(x=0;x<X;++x) printf("%+.1f ",tb[y][x]);
   for(y=0;y<Y;++y)
     {
      for(x=cnt=0;x<X;++x) cnt+=(tb[y][x]<0);
      if(cnt==X) printf("W wierszu %d same ujemne\n",y+1);
     }
   return 0;
  }
0

Nie da się prościej tego zapisać ?Nie jestem zaawansowany żeby takie kody pisać.

0

ty to nazywasz zaawansowanym kodem? po prostu zamiast {} jest podane polecenie zaraz po pętli... zaawansowane kody to prędzej coś takiego:

string a;
int b;
b=0+(a=="1")*1+(a=="2")*2+(a=="3")*3+(a=="4")*4+(a=="5")*5+(a=="6")*6+(a=="7")*7+(a=="8")*8+(a=="9")*9; 

bo nie lubię pisać if'ów jak nie trzeba :P

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