Записать в массив С все элементы из массивов А и В, которые больше числа Р - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
int main() {
int a[3][3];
int b[3][3];
int c[9][9];
int p;
int j,i;
printf("Vvedi p=");
scanf("%d",&p;
 
for (i = 0; i < 3; i = i + 1) {                              // ввод массива А
    for (j = 0; j < 3; j = j + 1) {
       a[i][j]=-20 + random(41);
    }
}
for (i = 0; i < 3; i = i + 1) {                         // вывод массива А
        printf("\n");
    for (j = 0; j < 3; j = j + 1) {
        printf("%d\t",a[i][j]);
    }
}
for (i = 0; i < 3; i = i + 1) {                              // ввод массива В
    for (j = 0; j < 3; j = j + 1) {
     b[i][j]=-20 + random(41);
    }
}
for (i = 0; i < 3; i = i + 1) {                         // вывод массива В
        printf("\n");
    for (j = 0; j < 3; j = j + 1) {
        printf("%d\t",b[i][j]);
    }
}
for (i = 0; i < 3; i = i + 1) {                             
    for (j = 0; j < 3; j = j + 1) {                        // условие для вывода матрицы С 
if (a[i][j]>p) c[i][j]=a[i][j]; ;
}
}
for (i = 0; i < 3; i = i + 1) {                              
    for (j = 0; j < 3; j = j + 1) {
if (b[i][j]>p) c[i][j]=b[i][j]; 
}
}
 
for (i = 0; i < 9; i = i + 1) {                         // вывод массива C
        printf("\n");
    for (j = 0; j < 9; j = j + 1) {
        printf("%d\t",c[i][j]);
    }
}
}
Нужно забить в массив С все элементы из массивов А и В, которые больше числа Р, заданного с клавиатуры. При работе программа выдает массив нулей С. В чем ошибка?

Решение задачи: «Записать в массив С все элементы из массивов А и В, которые больше числа Р»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main() {
int a[3][3];
int b[3][3];
int c[6][3]={0};
int p;
int j,i;
printf("Vvedi p=");
scanf("%d",&p);
 
for (i = 0; i < 3; i = i + 1) {                              // ввод массива А
    for (j = 0; j < 3; j = j + 1) {
       a[i][j]=-20 +  rand() % 100 ;
    }
}
for (i = 0; i < 3; i = i + 1) {                         // вывод массива А
        printf("\n");
    for (j = 0; j < 3; j = j + 1) {
        printf("%d\t",a[i][j]);
    }
}
for (i = 0; i < 3; i = i + 1) {                              // ввод массива В
    for (j = 0; j < 3; j = j + 1) {
     b[i][j]=-20 +  rand() % 100;
    }
}
for (i = 0; i < 3; i = i + 1) {                         // вывод массива В
        printf("\n");
    for (j = 0; j < 3; j = j + 1) {
        printf("%d\t",b[i][j]);
    }
}
for (i = 0; i < 3; i = i + 1) {                             
    for (j = 0; j < 3; j = j + 1) {                        // условие для вывода матрицы С 
if (a[i][j]>p) c[i][j]=a[i][j]; ;
}
}
for (i = 0; i < 3; i = i + 1) {                              
    for (j = 0; j < 3; j = j + 1) {
if (b[i][j]>p) c[i+3][j]=b[i][j]; 
}
}
printf("\n\n\n\n"); 
for (i = 0; i < 6; i = i + 1) {                         // вывод массива C
        printf("\n");
    for (j = 0; j < 3; j = j + 1) {
        printf("%d\t",c[i][j]);
    }
}
}

Объяснение кода листинга программы

В этом коде выполняется следующая последовательность действий:

  1. Ввод числового значения Р. Пользователю предлагается ввести число Р с помощью функции scanf().
  2. Инициализация массивов А и В. Два трехмерных массива (а и b) инициализируются случайными числами от -20 до 100 с помощью функции rand().
  3. Вывод массива А. Для визуализации массив А выводится на экран с помощью цикла for и функции printf().
  4. Вывод массива В. Аналогично выводится массив В.
  5. Заполнение массива С. Два вложенных цикла for используются для обхода всех элементов массивов А и В. Если элемент больше числа Р, он копируется в соответствующую позицию массива С.
  6. Вывод массива С. Массив С выводится на экран с помощью цикла for и функции printf().

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы