Top.Mail.Ru
Ответы

В чем ошибка кода?

#include <stdio.h>
#pragma warning(disable : 4996)
int fun(int **matr, int n, int i, int j) {
int l = 0, a[99];
while (l < n) {
a[l] = matr[l][j];
l++;
}
l = 0;
while (l < n) {
matr[i][l] = a[l];

l++;
}
for (int o = 0; o < n; o++) {
for (l = 0; l < n; l++) {
printf("%d ", matr[o][l]);
}
printf("\n");
}
}
int main() {

int matr[99][99], i = 0, j = 0, n = 0, o = 0, l = 0, d = 0;
int a[99], m = 0;
scanf("%d", &n);
scanf("%d %d", &i, &j);
for (o = 0; o < n; o++) {
for (l = 0; l < n; l++) {
scanf("%d", &matr[o][l]);
}
}
fun(matr[n][n],n, i, j);
}
Хотела что бы сначала заполнлся массив потом этот массив передаются в функцию и там столбец меняет строку

По дате
По рейтингу
Аватар пользователя
Новичок

Ошибка заключается в том, что к элементам двумерного массива нельзя обращаться по указателю int ** непосредственно. Еще функция fun должна возвращать значение.

На данном этапе программа просто сохраняет j-тый столбец в массив a, и копирует его в i-тую строку. Но не должна ли программа, случаем, менять местами i-тую строку с j-тым столбцом?

Удаленный ответ Ответ удалён