Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> help! задача на массивы, помогите решить! 
:(
    Опции темы
tamara
Дата 15.12.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 15.12.2005

Репутация: нет
Всего: нет



People, I need help!
Помогите, пожалуйста. Надо решить до понедльника. Боюсь за такой короткий срок не поумнею.

Задан двумерный массив, содержащий N строк и М столбцов.
1. Массив состоит из целых чисел, N=M. Если он симметричен
относительно главной диагонали, то определить сумму элементов в
четных строках; иначе - произведение элементов в нечетных столбцах.
2. Сформировать одномерный массив из максимальных элементов
столбцов исходного массива. Имеются ли в полученном массиве
отрицательные элементы?
smile smile smile
Добавлено @ 15:02
Извините, нарушаю правила...
Надо делать в С,С++
PM MAIL   Вверх
BreakPointMAN
Дата 15.12.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 2
Всего: 24



Вот примерный код на C:
Код

#include <conio.h>
#include <stdio.h>

int main()
   {
    const int N=5; // число строк
    const int M=5; // число столбцов

    int Matrix[N][M]=
    {
     { 1, 2, 3, 4, 5},
     { 2, 2, 4, 5, 7},
     { 3, 4, 3, 6, 8},
     { 4, 5, 6, 4, 9},
     { 5, 7, 8, 9, 5}
    };

    if(N!=M)
       {
        printf("Sorry, but it is not square matrix!");
       }
    else
       {
        // Пока полагаем, что матрица симметрична
        bool symm=true;
        // Но это еще предстоит проверить...

        for(int i=1; i<N; i++)
           {
            for(int j=0; j<i; j++)
                if(Matrix[i][j]!=Matrix[j][i])
                   {
                    // Условие симметрии не выполнено
                    symm=false; break;
                   }
            if(!symm) break;
           }

        if(symm)
           {
            // Матрица симметрична относительно главной диагонали
            printf("Matrix is symmetrical!\n");

            // Подсчитываем сумму...
            int sum=0;
            for(int i=1; i<N; i+=2)
               for(int j=0; j<M; j++)
                  sum+=Matrix[i][j];
            printf("Sum is: %d\n", sum);
           }
        else
           {
            // Матрица НЕ симметрична относительно главной диагонали
            printf("Matrix is NOT symmetrical!\n");

            // Подсчитываем произведение...
            double product=1;
            for(int i=0; i<N; i++)
               for(int j=0; j<M; j+=2)
                  product*=Matrix[i][j];
            printf("product is: %lf\n", product);
           }
       }


    // Массив с максимумами из столбцов
    int Array[M];
    bool NegativeExists=false;
    for(int j=0; j<M; j++) // по всем столбцам
       {
        int max=Matrix[0][j]; // полагаем, что максимум в первой строке
        for(int i=1; i<N; i++) // по всем строкам
           if(Matrix[i][j]>max) max=Matrix[i][j]; // ищем...
        if(max<0) NegativeExists=true; // проверяем на отрицательность
        Array[j]=max; // очередной элемент массива
       }

    // Выводим результаты...

    printf("Array here: \n");
       for(int i=0; i<M; i++)
          printf("%d\t",Array[i]);
    printf("\nNegative elements: ");
    if(NegativeExists)
       printf("yes");
    else
       printf("no");

    getch();
    return 0;
   }

Немного непонятно, что именно искать в (1) - сумму/произведение по каждой отдельной строке/столбцу, или сумму/произведение по всем строкам/столбцам... Сделал последнее, если что - переделать труда не составляет.

Писал "на коленке", возможно ошибки какие есть - не выверял.

Кому не лень - проверьте... smile


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
tamara
Дата 15.12.2005, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 15.12.2005

Репутация: нет
Всего: нет



спасибо, что с пояснениями. Может разберусь.
smile smile smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0711 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.