IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> поиск минимальной суммы произведений, Чистый С
PAS_Dil
сообщение 2.10.2006 15:37
Сообщение #1


Гость






Доброго времени суток.
Поставили перед мною следующую задачу и наказили выполнить на С.
Данны 2 массива длины n. Можно брать по одному члену из каждого м перемножать их. Напистаь программу печатающую пары номеров массивов так, чтобы сумма их произведений была минимальной. Каждый член массива может использоваться лишь однажды.

Если честно я немного не понимаю условия если можно поясните и его пожалуйста, буду очень признателен за исходник.

Благодарю за внимание.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Гость
сообщение 2.10.2006 21:41
Сообщение #2


Гость






Огромное спасибо я вот написал что то вроди этого, но возникала пробелма -как мне вывести индексы - мне на выход нужно передать индексы этих пар в старом массиве - не отсортированном. Т.е. я должен не только отсортировать массив но ещё и хранить индекс каждого элемента в массиве до его сортировки, чтобы на выходе можно было увидеть что мол элемент 2 * элемент 4 + элемент 6 * 7 элэмент....
Вот прошу помочь


#include <stdio.h>
#include <limits.h>
#include <stdlib.h>

#define MAX 3
#define OBNUL 0

main ()
{
int i;
int mas1[MAX] = {12,2,4}; // массив 1
int mas2[MAX] = {8,42,34}; // массив 2
int m1_t[MAX];
int m2_t[MAX];
int obn, nbl; // переменная счётчик
int min, max, vrem;
obn = OBNUL; nbl = OBNUL; min = OBNUL; max = OBNUL; vrem = OBNUL;
min = mas1[1];

for(obn = OBNUL, i=0; obn < MAX; obn++, i++)
{
min = mas1[obn];
for (nbl = OBNUL; nbl < MAX; nbl++)
{
if (mas1[nbl] > min)
{
m1_t[i] = obn;
vrem = mas1[nbl];
mas1[nbl] = min;
mas1[obn] = vrem;
break;
}
}
}


for(obn = OBNUL; obn < MAX; obn++)
{
for (nbl = OBNUL; nbl < MAX; nbl++)
{
if (mas2[nbl] < mas2[obn])
{
vrem = mas2[nbl];
mas2[nbl] = mas2[obn];
mas2[obn] = vrem;
break;
}
}
}
for(obn = OBNUL; obn < MAX; obn++)
printf("%d\n", mas1[obn]);
printf("----------\n");
for(obn = OBNUL; obn < MAX; obn++)
printf("%d\n", mas2[obn]);
printf("----------\n");


 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 11:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"