1

Тема: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стовпці матриці, всі елементи яких містять нулі.
Вхідні дані: n = 3;

   | 29   0   -1 |
A= |  3   0   13 |
   | -8   0   29 |

Допоможіть будь-ласка. В звичайній сі

    int a,j;
    int arr[3][3] = { 29, 0, -1, 3, 0, 13, -8, 0, 29 };
    printf("%d %d %d\n", a[0][0], a[0][1], a[0][2]);
    printf("%d %d %d\n", a[1][0], a[1][1], a[1][2]);
    printf("%d %d %d\n", a[2][0], a[2][1], a[3][2]);

    for(a = 0; a < 3; a++)
        for(j = 0; j < 3; j++)
        {
            if(arr[a][j] == 0) ;
        }
    return 0;
}

2

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

Так за вказаної умови взагалі треба всю матрицю видалити.
В усіх рядках є нулі.

3

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

Ну повинно бути так
Вихідні дані:

   | 29   -1 |
A= |  3   13 |
   | -8   29 |

4

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

Droid 77 написав:

Так за вказаної умови взагалі треба всю матрицю видалити.
В усіх рядках є нулі.

там сказано - ВСІ елементи яких містять нулі

Подякували: koala1

5 Востаннє редагувалося FakiNyan (02.08.2020 17:47:06)

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

   printf("%d %d %d\n", a[0][0], a[0][1], a[0][2]);
    printf("%d %d %d\n", a[1][0], a[1][1], a[1][2]);
    printf("%d %d %d\n", a[2][0], a[2][1], a[3][2]);

оце можна і треба виводити циклом.

 for(a = 0; a < 3; a++) {
        for(j = 0; j < 3; j++)
        {
            printf("%d %d %d", a[0][0], a[0][1], a[0][2]);
        }
   printf("\n");
}

але в мене питання, чи початковий код взагалі компілиться, бо це якийсь дивний масив...

6

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

о, курво. Ви взагалі нормальна людина? Якого дідька масив зветься arr, а в прінтах використовується a ?
Відразу видно, що ви не те, що не запускали, а й навіть не дивились на той код. Самі й робіть тепер, якщо таке ставлення до часу інших людей маєте.

Подякували: leofun011

7

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

Так комплітиться. Воно виводить  ось так
     |  29   0  -1 |
A= |  3    0   13|
     |  -8   0   29|
А далі я не знаю як.

8

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

В коді у мене замість "a" стоїть "i", тут в мене вибиває помилка, що "і" відкрита сама в собі. І тому я замінив зміну "i" на "a".
Також,  в своєму коді масив я назвав "a", але тут замінив на arr. І потім забув замінити в прінтах назву масиву. Вибачайте.

Подякували: FakiNyan1

9

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

ну добре... на перший раз вибачу.
я там трішки не так вам написав, чекайте

10

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

ось цей код виведе масив, але поки що не зробе те, що вам треба, але все одно це краще, ніж виводити все вручну, бо матриця може бути і 10x10, наприклад.

#include <cstdio>

int main() {
    int i,j;
    int arr[3][3] = { { 29, 0, -1 }, { 3, 0, 13 }, { -8, 0, 29 } };

    for(i = 0; i < 3; i++) {
        for(j = 0; j < 3; j++)
        {
            printf("%d\t", arr[i][j]);
            if(arr[i][j] == 0) ;
        }
        printf("\n");
    }

    return 0;
}

11 Востаннє редагувалося FakiNyan (02.08.2020 20:05:15)

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

ось цей код буде генерувати випадкову матрицю та випадково обнуляти один стовпчик, або рядок

#include <cstdio>
#include <cstdlib>
#include <time.h>

int main() {
    int i,j;
    const int size = 3;
    int arr[size][size];

    srand(time(NULL)); // це треба, аби набір випадкових чисел завжди був випадковим, без цього набір буде однаковим кожен раз

    const int columnOrRow = rand() % 2; // поверне 0, бо 1. Якщо 0 - то обнуляємо стовпчик, а якщо 1 - то рядок
    const int indexToZeroOut = rand() % size; // обираємо номер рядка, або стовпчика, котрий обнулимо

    printf("column or row: %d ( 0 = column, 1 = row), index to zero out: %d\n\n", columnOrRow, indexToZeroOut);

    for(i = 0; i < size; i++) {
        for(j = 0; j < size; j++)
        {
            int value;
            if (columnOrRow == 0 && indexToZeroOut == j || columnOrRow == 1 && indexToZeroOut == i) {
                value = 0;
            } else {
                value= (rand() % (100 + 100) + 1) - 100;

            }
            arr[i][j] = value;
            printf("%d\t", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}
Подякували: Nezox7711

12

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

ну а далі я хз, як то робити, бо я не знаю, які там методи та функції є. Це вам треба або змінювати існуючий масив, якщо можна, або ж робити новий, але цей новий може містити як 0, так і всі 9 елементів матриці.
Мабуть, то вже буде динамічний масив? Чи може масив векторів?

Подякували: Nezox7711

13

Re: Дано цілочислову матрицю А розмірності nxn. Видалити всі рядки та стов

Nezox771, ви можете словами описати, що саме має робити такий алгоритм?