Итак, я должен создать программу, которая может определять максимум по диагонали матрицы. Затем мне нужно поменять место первой переменной матрицы (a [1] [1]) с максимумом этой матрицы, остальные элементы остались неизменными.Перемещение 2 переменных из матрицы в C
Вот мой код:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int a[20][20];
int main(){
int i, j, n1, n2, max;
printf ("\nIntroduceti numarul de coloane pentru matricea A: ");
scanf (" %d", &n2);
printf ("\nIntroduceti numarul de randuri pentru matricea A: ");
scanf (" %d", &n1);
printf("\nIntroduceti elementele primei matrice: ");
for(i=1;i<=n1;i++){
for(j=1;j<=n2;j++){
printf("\na[%d][%d] = ", i, j);
scanf("%d",&a[i][j]);
}
}
printf("\nMatricea A este:\n");
for(i=1;i<=n1;i++){
printf("\n");
for(j=1;j<=n2;j++){
printf("%d\t",a[i][j]);
}
}
do {
for(i=1;i<=n1;i++){
if(a[i][i]>max) {
max=a[i][i];
}
}
} while (i<=n1);
printf ("\nMaximul de pe diagonala este: %d", max);
a[1][1]=a[1][1]^max;
max=max^a[1][1];
a[1][1]=max^a[1][1];
for(i=1;i<=n1;i++){
printf("\n");
for(j=1;j<=n2;j++){
printf("%d\t",a[i][j]);
}
}
return 0;
}
Что я сделал не так? Моя программа свопирует только максимум с первой переменной a [1] [1], но забывает разместить [1] [1], где максимум.
Логика вашей свопинга не кажется неправильной - поэтому название даже не актуально. –
В C индексы массива начинаются с 0! –
@ ZachP Ну, логика хорошая, но она не делает то, что мне нужно. Моя программа свопирует только максимум с первой переменной a [1] [1], но забывает разместить [1] [1], где максимум. Зачем? –