Форум программистов, компьютерный форум CyberForum.ru

Массивы - C++

Восстановить пароль Регистрация
 
Chefer
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 24
07.12.2009, 21:36     Массивы #1
Составить программу, которая получает матрицу целых чисел Х размером n *n и массив целых, размером n. Если в матрице нет строк, равных массиву целых чисел, то программа формирует новую матрицу, заменив диагональ исходной на массив целых.
Помогите плиз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.12.2009, 21:46     Массивы #2
то программа формирует новую матрицу, заменив диагональ исходной на массив целых.
Два вопроса:
1. Обязательно создавать новую матрицу, или можно просто заменить диагональ исходной матрицы?
2. Диагональ имеется ввиду главная?
Chefer
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 24
08.12.2009, 11:20  [ТС]     Массивы #3
да диагональ главная, и надо имменно новую матрицу создать
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
08.12.2009, 12:54     Массивы #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream.h>
#include <windows.h>
 
int main ()
{
    int **X, *mas, **mas_new, n, i,j;
    bool fl=false;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Ââåäèòå Г°Г*çìåðГ*îñòü Г¬Г*òðèöû X:";
    cin>>n;
    X=new int*[n]; 
    for(i=0; i<n; i++)
       X[i]=new int[n];
    cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*òðèöû X: "<< endl;
    for(i=0; i<n; i++)
       for(j=0; j<n; j++)
       {
          cout<<"["<<i<<"]["<<j<<"]= ";
          cin>>X[i][j];
       }
        cout<<"èñõîäГ*Г*Гї Г¬Г*òðèöГ*"<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<n; j++)
          cout<<X[i][j]<<" ";
          cout<<endl;
        }
    mas=new int[n];
    cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ* öåëûõ:"<<endl;
    for(i=0; i<n; i++)
    {
        cout<<"["<<i<<"]= ";
        cin>>mas[i];
    }
    for(i=0; i<n && !fl; i++)
    {
        fl=true;
       for(j=0; j<n; j++)
        if(mas[j]!=X[i][j])
            fl=false;
    }
    if(!fl)
    {
        mas_new=new int*[n]; 
        for(i=0; i<n; i++)
            mas_new[i]=new int[n];
        for(i=0; i<n; i++) 
            for(j=0; j<n; j++)
                if(i!=j)
                    mas_new[i][j]=X[i][j];
                else
                    mas_new[i][j]=mas[i];
        cout<<"Ïîëó÷åГ*Г*Г*Гї Г*îâГ*Гї Г¬Г*òðèöГ* "<<endl;
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
            cout<<mas_new[i][j]<<" ";
            cout<<endl;
        }
    }
    else
        cout<<"ÍîâГ*Гї Г¬Г*òðèöГ* Г*ГҐ ñîçäГ*Г*Г*"<<endl; 
    return 0; 
}
Chefer
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 24
08.12.2009, 13:44  [ТС]     Массивы #5
почему то запарывается на ответе. когда ввожу массив целых ни выводит ничего ни новую матрицу ни то что она не создана
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
08.12.2009, 14:57     Массивы #6
Сначало вводим размерность "матрицы целых чисел Х", то есть - n.
Затем вводим элементы "матрицы целых чисел Х, размером n *n".
Затем вводим элементы массива целых, размером n.
Затем смотрим результат.
Chefer
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 24
08.12.2009, 15:18  [ТС]     Массивы #7
да это все понятно просто после того как я ввожу значения массива он ничего не выводит

Добавлено через 12 минут
и еще можешь объяснить на чем строиться решение
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
08.12.2009, 15:49     Массивы #8
Цитата Сообщение от Chefer Посмотреть сообщение
после того как я ввожу значения массива он ничего не выводит
Выводит или строку "Новая матрица не создана" (это в том случае, если в матрице есть хоть одна строка, равная массиву целых). Или выводит новый массив (это в том случае, если в матрице нет ни одной строки, равной массиву целых).
Решение строится на задании:
Цитата Сообщение от Chefer Посмотреть сообщение
Составить программу, которая получает матрицу целых чисел Х размером n *n и массив целых, размером n. Если в матрице нет строк, равных массиву целых чисел, то программа формирует новую матрицу, заменив диагональ исходной на массив целых.
- Создаем матрицу целых чисел Х размером n *n, заполняем ее элементами
- Создаем массив целых, размером n, заполняем и его
- Сравниваем массив целых со всеми строками матрицы. Если равных массиву строк нет, то формируем новую матрицу по заданным условиям, если равная строка есть, то просто выводим сообщение "Новая матрица не создана"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2009, 17:23     Массивы
Еще ссылки по теме:

индексные массивы и адресные массивы C++
C++ Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100)
C++ Массивы структур, массивы векторов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Chefer
0 / 0 / 0
Регистрация: 11.11.2009
Сообщений: 24
16.12.2009, 17:23  [ТС]     Массивы #9
спасибо за помощь, тему можно закрыть
Yandex
Объявления
16.12.2009, 17:23     Массивы
Ответ Создать тему
Опции темы

Текущее время: 03:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru