Witam. Mam takie zadanko. Nie wiem jak napisać algorytm na zamianę wiersza z kolumną. Dodam, że muszę to zrobić w C. Niżej zamieszczam kod programu. (bez tego algorytmu)
Dzięki za pomoc.
Napisz program, który w tabeli o n wierszach i n kolumnach zamienia s-ty wiersz z s-tą kolumną,
gdzie s jest numerem wiersza i kolumny, na przecięciu których jest umieszczony element maksymalny głównej
przekątnej. Liczbę naturalną n oraz elementy tabeli podaje użytkownik. Można założyć, że n jest nie większe niż 25.
#include <stdio.h>
int main()
{
printf("Program zamienia n-ty wiersz z n-ta kolumna. \n");
int n; // Liczba wierszy i kolumn
int i, j;
int tab[25][25];
int max = 0;
printf("Podaj ilosc wierszy i kolumn:");
while (scanf_s("%d", &n) != 1 || getchar() != '\n' || n>25)
{
printf("Podano bledne dane, poprawe je. ");
printf("\nPodaj poprawna liczbe: ");
while (getchar() != '\n') //czyszczenie bufora
;
}
printf("\nPodaj teraz dane tablicy:\n");
for (i = 0; i<n; i++)
{
for (j = 0; j<n; j++)
{
printf("Podaj liczbe dla pola w tablicy (%d,%d):", i, j);
while (scanf_s("%d", &tab[i][j]) != 1 || getchar() != '\n' )
{
printf("Podano bledne dane, poprawe je. ");
printf("\nPodaj poprawna liczbe: ");
while (getchar() != '\n') //czyszczenie bufora
;
}
}
}
printf("\nA oto jak wyglada twoja tablica:\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%d\t", tab[i][j]);
}
putchar('\n');
}
//Kod znajdujący wartość max w danym wierszu i kolumnie
for (i = 0, j = 0; i<n; i++, j++)
{
if (max < tab[i][j])
{
max = tab[i][j];
}
}
printf("Maksymalna wartosc z glownej przekatnej to: %d", max);
//Kod zamieniający miejscami wiersz i kolumnę względem wartości max
printf("\n\nAutor programu: Bartosz Rozanski \n");
printf("Koniec programu.\n");
return 0;
}