profile
Размещено 5 лет назад по предмету Информатика от micha2809


Дана
матрица Р(8,9), Н(9,7) вещественных чисел.
Инвертировать все четные строки матрицы.
Для вычислений использовать процедуру.

  1. Ответ на вопрос
    Ответ на вопрос дан Den4ikDezhen
    #include "stdafx.h" 
    #include "malloc.h" 
    #include <iostream> 
    using namespace std; 

    int _tmain(int argc, _TCHAR* argv[]) 

    // Вводим исходные данные. 
    int m
    int n; 
    printf ("Введите количество столбцов? m = "); 
    cin >> m; 
    printf ("Введите количество строк? n = "); 
    cin >> n; 

    // Создаем матрицу. 
    int* pMatrix = (int*) malloc (m * n * sizeof (int)); 

    // Инициализируем другие переменные. 
    int xMin = 0, // левая граница спирали 
    xMax = m, // правая граница спирали (не включая ее, поэтому ниже будет использоваться xMax - 1) 
    yMin = 0, // верхняя граница спирали 
    yMax = n, // нижняя граница спирали (не включая ее, поэтому ниже будет использоваться yMax - 1) 
    i = 0, // текущее число 
    x, y; // расходный материал. 

    // Бесконечный цикл, пока не заполним матрицу. 
    while (1) 

    // Заполняем верхний ряд слева направо. 
    for (x = xMin; x < xMax; x++) 
    pMatrix[x + yMin * m] = i++; 
    // Заполнили весь верхний ряд. Подвигаем вниз верхнюю границу. 
    yMin ++; 
    // Если верхняя граница совпала с нижней, то заканчиваем цикл. 
    if (yMin == yMax) 
    break; 

    // Заполняем правый ряд сверху вниз. 
    for (y = yMin; y < yMax; y++) 
    pMatrix[xMax - 1 + y * m] = i++; 
    // Заполнили весь правый ряд. Подвигаем налево правую границу. 
    xMax --; 
    // Если правая граница совпала с левой, то заканчиваем цикл. 
    if (xMax == xMin) 
    break; 

    // Заполняем нижний ряд справа налево. 
    for (x = xMax - 1; x >= xMin; x--) 
    pMatrix[x + (yMax - 1) * m] = i++; 
    // Заполнили весь нижний ряд. Подвигаем вверх нижнюю границу. 
    yMax --; 
    // Если верхняя граница совпала с нижней, то заканчиваем цикл. 
    if (yMin == yMax) 
    break; 

    // Заполняем левый ряд снизу вверх. 
    for (y = yMax - 1; y >= yMin; y--) 
    pMatrix[xMin + y * m] = i++; 
    // Заполнили весь левый ряд. Подвигаем направо левую границу. 
    xMin ++; 
    // Если правая граница совпала с левой, то заканчиваем цикл. 
    if (xMax == xMin) 
    break; 
    // если мы все еще здесь, значит идем на очередной виток спирали.. . 


    // Есть предположение, что спираль заполнена. Напечатаем ее, посмотреть.. . 
    for (y = 0; y < n; y++) 

    // Печатаем строку. 
    for (x = 0; x < m; x++) 
    printf ("i, ", pMatrix[x + y * m]); 
    // Переходим на другую строку. 
    printf ("rn"); 


    // Освобождаем память и выходим. 
    free (pMatrix); 
    pMatrix = 0; 
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.