Консультация № 183621
14.06.2011, 15:36
55.50 руб.
0 11 2
Уважаемые эксперты! Пожалуйста, помогите с решением задач:

1. Даны прямоугольные матрицы А размером m x n и B размером k x l. Найти произведение матрицы A на матрицу B,где n=k.
2. Вводится массив. Найти в нем подпоследовательность из подряд идущих элементов с наибольшей суммой.

Обсуждение

Неизвестный
14.06.2011, 16:23
общий
Ребят если есть время то помогите по быстрее ) Через час экзамен уже ) Примного благодарен за внимание )
Неизвестный
14.06.2011, 17:33
общий
Ребят времени вообще в обрез, вторую если мона хотяб :)
Неизвестный
14.06.2011, 18:06
общий
первая про матрицы
Прикрепленные файлы:
01ed9050025e390b4ce08cf58ef77702.zip
Неизвестный
14.06.2011, 18:15
общий
сейчас сделаю вторую
пока смотрите первую , спрашивайте что непонятно
Неизвестный
14.06.2011, 18:40
общий
здесь нужно уточнять размер подпоследовательности
я взял для примера длину массива 11, а длину подпоследовательности 3

alex@ws-1:~/prg/C$ ./a.out
a_0 = 1
a_1 = 2
a_2 = 3
a_3 = 4
a_4 = 5
a_5 = 6
a_6 = 7
a_7 = 8
a_8 = 9
a_9 = 10
a_10 = 11
n = 8, sum = 30

здесь максимальная сумма начинается с индекса 8
9+10+11 = 30

alex@ws-1:~/prg/C$ ./a.out
a_0 = 5
a_1 = 1
a_2 = 8
a_3 = 4
a_4 = 3
a_5 = 9
a_6 = 0
a_7 = 17
a_8 = -4
a_9 = 6
a_10 = 23
n = 5, sum = 26

а здесь с пятого
9+0+17 = 26
Прикрепленные файлы:
98fcca4902b69d473eddc05e8ffa0ae4.zip
Неизвестный
14.06.2011, 18:47
общий
Последнее это вторая задача или к первой?
Неизвестный
14.06.2011, 18:52
общий
это ответ
Здравствуйте, robos!

ссылка на zip архив в приложении

Приложение:
183621.zip (39.2 кб)
Неизвестный
14.06.2011, 18:54
общий
там где максимальная сумма это про массив
Неизвестный
14.06.2011, 18:56
общий
вот всё вместе

183621.zip (39.2 кб)
давно
Академик
320937
2216
14.06.2011, 19:39
общий
Добрый вечер! И куда так было торопиться: вторая задача не об этом. Ответ неверный.
давно
Академик
320937
2216
14.06.2011, 20:01
общий
это ответ
Здравствуйте, robos!
Код:
/* Вводится массив. Найти в нем подпоследовательность из подряд идущих
элементов с наибольшей суммой. */
/* http://forum.vingrad.ru/topic-39011.html, Dov */

#include <stdio.h>
#include <stdlib.h>
#define SIZE 10

int main(void)
{
int ar[] = {5, 5, 8, -2, -9, 14, -8, 3, 3, 3};
int sum = 0;
int max = 0;
int iBeg = 0;
int iEnd = 0;
int iFirst = 0;
int i;

for(i = 0; i < SIZE; i++)
{
sum += ar[i];
if(sum <= 0)
{
sum = 0;
iFirst = i + 1;
}
else if(sum > max)
{
max = sum;
iBeg = iFirst;
iEnd = i;
}
}

printf("Index :");
for(i = 0; i < SIZE; i++)
printf("%4d", i);

printf("\nArray :");
for(i = 0; i < SIZE; i++)
printf("%4d", ar[i]);

printf("\nMySeq :");
for(i = 0; i <= iEnd; i++)
i < iBeg ? printf("%4d") : printf("%4d", ar[i]);

printf("\n\nMaxSum: %d\nIndBeg: %d\nIndEnd: %d\n", max, iBeg, iEnd);

system("pause");
return 0;
}

Удачи!
Форма ответа