Вычислить элементы массива Y по формуле Yik - C (СИ)

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

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

Здравствуйте! Такая задачка: Ввести массив А(10,10). Вычислить элементы массива Y по формуле Yik= 1) 2*Aik, если Aik < 0; 2) 0, если Aik = 0; 3) -Aik, если Aik > 0; Вывести исходный и результирующий массивы и количество элементов массива Y, получивших значение 0.
#include <stdio.h>
 
int const n = 3, m = 3;
 
int main() {
    int x[n][m];
    int y[n][m];
    int k = 0;
    printf("Enter thr first massiv ");
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            printf("x[%d][%d]=", i, j);
            scanf_s("%d", &x[i][j]);
        }
    }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (x[i][j] < 0)
                scanf_s("%d", &y[i][j]);
            if (x[i][j] == 0)
                scanf_s("%d", &y[i][j]);
            if (x[i][j]>0)
                scanf_s("%d", &y[i][j]);
        }
 
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (y[i][j] == 0) k += 0;
                printf("y[%d][%d]/n", i, j, y[i][j]);
            }
            printf("The number of elements, that == 0, - %d", k);
        }
    }
}
Проблема в том, что запись первого массива осуществляется, а вот второй результирующий что-то не показывает.. Не подскажите, в чём проблема?

Решение задачи: «Вычислить элементы массива Y по формуле Yik»

textual
Листинг программы
#include <stdio.h>
 
int main(void) {
    const int N = 3;
    const int M = 3;
    int x[N][M], y[N][M];
    int k = 0;
    printf("Enter thr first massiv ");
    for (int i=0; i < N; ++i) {
        for (int j=0; j < M; ++j) {
            printf("x[%d][%d]=", i, j);
            scanf_s("%d", &x[i][j]);
            if (x[i][j] < 0) {
                y[i][j] = 2 * x[i][j];
            } else {
                y[i][j] = -x[i][j];
                if (y[i][j] == 0) ++k;
            }
        }
    }
    printf("x:");
    for (int i=0; i < N; ++i) {
        for (int j=0; j < M; ++j) {
            printf("x[%d][%d] = %d ", i, j, x[i][j]);
        }
        printf("\n");
    }
    printf("y:");
    for (int i=0; i < N; ++i) {
        for (int j=0; j < M; ++j) {
            printf("y[%d][%d] = %d ", i, j, y[i][j]);
        }
        printf("\n");
    }
    printf("The number of elements, that == 0, - %d", k);
    return 0;
}

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

В этом коде:

  1. Введены и заданы значения переменных N и M, которые определяют размерность массивов x и y.
  2. Создаются массивы x и y размером N на M.
  3. Запрашиваются значения для элементов массива x с помощью функции scanf_s.
  4. Вычисляются значения для элементов массива y по формуле Yik
    • Если x[i][j] < 0, то y[i][j] = 2 * x[i][j].
    • Иначе y[i][j] = -x[i][j], и если y[i][j] == 0, то увеличивается счетчик k.
  5. Выводятся значения массивов x и y на экран.
  6. Выводится значение переменной k, которая считает количество элементов массива y равных нулю.
  7. Завершается программа с возвращаемым значением 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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