Witam,
Mam napisać program który znajduje wartość największą i najmniejszą w każdym wierszu tablicy i zamienia ją miejscami z pierwszą i ostatnią, tak aby największa liczba w każdym wierszu była po lewej a najmniejsza po prawej.
Zrobiłem takie coś ale nie działa jak należy, bo zamiast zamienić miejscami wartości to ją podstawia i to jeszcze nie do końca dobrze.
#include <stdio.h>
#define N 4
#define M 4
int main()
{
int tab[N][M] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int w,k;
double max, min;
for(w=0;w<N;w++)
{
for(k=0;k<M;k++)
{
max = tab[w][0];
min = tab[w][0];
if(max<tab[w][k])
{max = tab[w][k];
tab[w][0] = max;}
else if(min>tab[w][k])
min = tab[w][k];
tab[w][M-1] = min;
}
}
Powinno wyglądać tak:
4 | 2 | 3 | 1
8 | 6 | 7 | 5
12 | 10 | 11 | 9
16 | 14 | 15 | 13
A wygląda tak:
3 | 2 | 3 | 2
7 | 6 | 7 | 6
11 | 10 | 11 | 10
15 | 14 | 15 | 14
Proszę o pomoc gdzie coś pomieszałem i jak zrobić żeby zmieniało miejscami wartości a nie podstawiało.
Elementy w tabeli na początku mogą być dowolne, nie muszą być po kolei(1,2,3...) tak jak dałem.