Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2011, 08:16   #1
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию Матрицы

# include <iostream>
using namespace std;

int main(void)
{
setlocale(0,"");
char slog[100];
int der;
char a11,a22,a33,a44,a55,a66,a77,a88,a99 ,a1010,a1111,a1212,a1313,a1414,a151 5,a1616;
cout << "Введите размер квадратной матрицы: " << endl;
cin >> der;
if (der < 17)
{

cout << "Введите несколько цифр: " << endl;
for(int i=0;i<der*der;i++)
{
cin >> slog[i];
}

a11=slog[0]; a22=slog[der+1]; a33=slog[a22+a22]; a44=slog[a33+a22];
a55=slog[a44+a22]; a66=slog[a55+a22]; a77=slog[a66+a22]; a88=slog[a77+a22];
a99=slog[a88+a22]; a1010=slog[a99+a22]; a1111=slog[a1010+a22]; a1212=slog[a1111+a22];
a1313=slog[a1212+a22]; a1414=slog[a1313+a22]; a1515=slog[a1414+a22]; a1616=slog[a1515+a22];
cout << "Первый эл-т: " << a11 << "\ Эл-т а22: " << a22 << "\ Эл-т а33: " << a33 << endl;
if (der == 0)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: 0" << endl;
}
if (der == 1)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11 << endl;
}
if (der == 2)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22 <<endl;
}
if (der == 3)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33 << endl;
}
if (der == 4)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44 << endl;
}
if (der == 5)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55 << endl;
}
if (der == 6)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66 << endl;
}
if (der == 7)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77 << endl;
}
if (der == 8)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88 << endl;
}
if (der == 9)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 << endl;
}
if (der == 10)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010 << endl;
}
if (der == 11)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111 << endl;
}
if (der == 12)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212 << endl;
}
if (der == 13)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212*a1313 << endl;
}
if (der == 14)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212*a1313*a1414 << endl;
}
if (der == 15)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212*a1313*a1414*a151 5 << endl;
}
if (der == 16)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212*a1313*a1414*a151 5*a1616 << endl;
}
cin.get();
cin.get();
}
else
{
cout << "Матрицу надо вводить размером не более 16х16, попробуйте ещё раз" << endl;
}
cin.get();
cin.get();
}
Janger вне форума Ответить с цитированием
Старый 07.11.2011, 08:26   #2
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

В общем задание такое..
Дана целочисленная матрица Х из N строк и N столбцов, где N-четное и <=16. Найти абсолютную величину произведения элементов под главной диагональю до первого элемента равного нулю(диагональ не учитывать). Вывести номер строки, в которой находится нулевой элемент. Если нулей нет, то вывести сообщение и найти максимум на главной диагонали.
---------------------------------------------------------------------------------
Я понимаю что программу я не конца дописал, но уже тут проблемы появляюся...(
1) когда вводишь элементы матрицы, то нельзя ввести двухчисленные числа...(
2) проблема с char and int, ничего не могу поделать((
3) и почему то моя система с slog[i] .. не очень точно работают((
Janger вне форума Ответить с цитированием
Старый 07.11.2011, 09:06   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

кхм,на говнокод ! (вариант: ололо, на башорк)
Автор, изучите, пожалуйста, сперва массивы !
uhm, не знаю как страйкаут сделать, чтобы написать а(ф)вт(а)ор

Последний раз редактировалось phomm; 07.11.2011 в 09:11.
phomm вне форума Ответить с цитированием
Старый 07.11.2011, 09:22   #4
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

# include <iostream>
using namespace std;

int main(void)
{
setlocale(0,"");
int slog[100];
int der;
int a11,a22,a33,a44,a55,a66,a77,a88,a99 ,a1010,a1111,a1212,a1313,a1414,a151 5,a1616;
cout << "Введите размер квадратной матрицы: " << endl;
cin >> der;
if (der < 17)
{

cout << "Введите несколько цифр: " << endl;
for(int i=0;i<der*der;i++)
{
cin >> slog[i];
}

a11=slog[0]; a22=slog[der+1]; a33=slog[der+der+2]; a44=slog[der+der+der+3];
a55=slog[der+der+der+der+4]; a66=slog[der+der+der+der+der+5]; a77=slog[der+der+der+der+der+der+6]; a88=slog[der+der+der+der+der+der+der+7];
a99=slog[der+der+der+der+der+der+der+der+8]; a1010=slog[der+der+der+der+der+der+der+der+der +9]; a1111=slog[der+der+der+der+der+der+der+der+der +der+10]; a1212=slog[der+der+der+der+der+der+der+der+der +der+der+11];
a1313=slog[der+der+der+der+der+der+der+der+der +der+der+der+12]; a1414=slog[der+der+der+der+der+der+der+der+der +der+der+der+der+13]; a1515=slog[der+der+der+der+der+der+der+der+der +der+der+der+der+der+14]; a1616=slog[der+der+der+der+der+der+der+der+der +der+der+der+der+der+der+15];

cout << "Первый эл-т: " << a11 << "\ Эл-т а22: " << a22 << "\ Эл-т а33: " << a33 << endl;

if (der == 0)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: 0" << endl;
}
if (der == 1)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11 << endl;
}
if (der == 2)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22 <<endl;
}
if (der == 3)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33 << endl;
}
if (der == 4)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44 << endl;
}
if (der == 5)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55 << endl;
}
if (der == 6)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66 << endl;
}
if (der == 7)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77 << endl;
}
if (der == 8)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88 << endl;
}
if (der == 9)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 << endl;
}
if (der == 10)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010 << endl;
}
if (der == 11)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111 << endl;
}
if (der == 12)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212 << endl;
}
if (der == 13)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212*a1313 << endl;
}
if (der == 14)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212*a1313*a1414 << endl;
}
if (der == 15)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212*a1313*a1414*a151 5 << endl;
}
if (der == 16)
{
cout << "Прозведение всех элементов главной диагонали матрицы равно: " << a11*a22*a33*a44*a55*a66*a77*a88*a99 *a1010*a1111*a1212*a1313*a1414*a151 5*a1616 << endl;
}
cin.get();
cin.get();
}
else
{
cout << "Матрицу надо вводить размером не более 16х16, попробуйте ещё раз" << endl;
}
cin.get();
cin.get();
}

--------------------------------------------------------------------------------
Вот исправил.. всё работает. но теперь условие в задаче... вообще идей нету как это сделать(( "Найти абсолютную величину произведения элементов ПОД главной диагональю до первого элемента равного нулю(ДИАГОНАЛЬ НЕ УЧИТЫВАТЬ)"
Щас буду думать...
Janger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответ... just_dake Помощь студентам 7 28.12.2018 14:33
Для матрицы 8x8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. (Задание на Си) Ислам Помощь студентам 8 20.05.2011 20:56
Процедуры - вычислить количество элементов матрицы,кратных 5 и заменить на 0 все четные элементы матрицы Ksenichka Помощь студентам 1 19.05.2011 14:38
Ф-ия, определяющая сумму строк матрицы, если на главной диагонали матрицы имеется отрицательный эл-т. Volk_xD Помощь студентам 6 05.01.2011 13:39
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19