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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2011, 21:04   #1
Ислам
Форумчанин
 
Регистрация: 22.02.2011
Сообщений: 106
По умолчанию 2D массив на Си

Цитата:
Найти строку с наибольшей и наименьшей суммой элементов

как это сделать??

Цитата:
void zad3(float **mas, int str, int stb)
{
int i,j;
float sum_min=0,sum_max=0,a,b;
for(i=0;i<str;i++)
{
a=b=0;
for(j=0;j<stb;j++)
{
a+=mas[i][j];
b+=mas[i][j];
sum_min=a;
sum_max=b;
if(a>b)
{
sum_max=a;
sum_min=b;
}
else
{
sum_max=b;
sum_min=a;
}
}
}
printf("\n%d Сумма минимальной строки=%.1f\n\n%d Сумма максимальной строки=%.1f\t",i,sum_min,i,sum_max) ;
}
Вот то что я написал...

Последний раз редактировалось Ислам; 20.05.2011 в 21:39.
Ислам вне форума Ответить с цитированием
Старый 20.05.2011, 22:25   #2
Ислам
Форумчанин
 
Регистрация: 22.02.2011
Сообщений: 106
По умолчанию

тут проблема в том, что я еще и за пределы массива выхожу...
Ислам вне форума Ответить с цитированием
Старый 21.05.2011, 01:39   #3
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
float sum_row(float **Array, int row_index, int columns)
{
    float sum = 0.0;
    for (j = 0; j < columns; j++)
        sum += Array[row_index][j];
    return sum;
}

int main()
{
    int rows, columns;
//
// Тут объявление и инициализация массива
// ...
// ...

    int index_min = 0;
    int index_max = 0;
    float min_sum, max_sum;
    min_sum = max_sum = sum_row(Array, 0, columns);
    for (int i = 1; i < rows; i++)
    {
        if (sum_row(Array, i, columns) < min_sum)
            index_min = i;
        if (sum_row(Array, i, columns) > max_sum)
            index_max = i;
    }
    
    cout << "Строка с минимальной суммой -- " << index_min << "-я, сумма равна "
         << sum_row(Array, index_min, columns) << endl
         <<  "Строка с максимальной суммой -- " << index_max << "-я, сумма равна "
         << sum_row(Array, index_max, columns) << endl;

// ...
// Тут еще какой-нибудь код
// ...

    return 0;
}

ЗЫ Вызов функции sum_row расчитан на использование динамического массива.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 21.05.2011 в 01:42.
Mandrivnyk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W leha_demi Помощь студентам 2 24.09.2011 18:12
Дан массив А(20). Получить массив В(20), в котором В(1)=А(2), В(2)=А(1), В(3)=А(4), В(4)=А(3) и т.д. Выве nikita1 Помощь студентам 5 01.12.2010 18:16
Как конвертировать массив символов в массив байт davinci C++ Builder 6 30.10.2010 18:09
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06