Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
maperke
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 1
1

из матрицы нужно удалить строку с минимальной суммой элементов

28.04.2013, 22:52. Просмотров 479. Ответов 0
Метки нет (Все метки)

Требуется ввести матрицу вещественных чисел размерности N×M из файла input.txt и выполнить с ней следующее преобразование: Найти строку с минимальной суммой элементов и удалить из матрицы эту строку, а строки с последующими номерами последовательно сдвинуть на освободившееся место, при этом последняя освободившаяся строка матрицы заполняется нулями.

Матрица должна быть представлена в памяти как одномерный массив длины NM, в котором по строкам записаны все элементы матрицы. При этом функция обработки должна иметь следующий заголовок void Process (double *matr, int N, int M, ..и другие параметры);

Ответом является преобразованная матрица, которую нужно вывести по строкам в файл output.txt (только элементы матрицы без ее размерностей).

Во входном файле (input.txt) сначала записаны два целых числа - число строк N и число столбцов M исходной матрицы, а далее по строкам записаны элементы матрицы. При вводе данных программа должна выделить необходимую память для размещения матрицы в соответствии с указанным представлением, а по окончании работы освободить эту память. Для работы нельзя выделять иные массивы, зависящие от размерностей матрицы, а также использовать заранее объявленные статические массивы большого размера. Если при чтении матрицы из файла возникают ошибки ввода-вывода или не удается корректно ввести требуемое количество элементов матрицы, то программа (функция main) должна завершить работу и вернуть значение −1. При корректном завершении работы программа (функция main) должна вернуть значение 0.
вот я писал прогу похожую, которая ищет строку с максимальной суммой и вычитает ее из остальных, а какой написать к ней цикл для удаления ее из матрицы что-то не могу:
#include <stdio.h>
#include <stdlib.h>


void process(double *matr, int n, int m)
{
double max, s;
int imax=0;

max = matr[0]; imax = 0;
for (int i=0;i<n && i<m;i++) {
if(matr[i*m+i]>max) {max=matr[i*m+i]; imax=i;}
}

for (int i=0;i<n;i++) {
if (i==imax) continue;
for (int j=0;j<m; j++)
matr[i*m+j] -= matr[imax*m+j];
}
}



int main()
{

FILE *fin=fopen("input.txt","r");
FILE *fout=fopen("output.txt","w");
int n,m;
fscanf(fin,"%d%d",&n,&m);
double *matr = new double[n*m];
for (int i=0;i<n*m; i++) fscanf(fin,"%lf",&matr[i]);

process(matr,n,m);

for(int i=0;i<n;i++) {
for(int j=0;j<m;j++)
fprintf(fout,"%lf ",matr[i*m+j]);
fprintf(fout,"\n");
}
fclose(fin);
fclose(fout);
delete [] matr;
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 22:52
Ответы с готовыми решениями:

В матрице удалить строку с максимальной суммой положительных элементов строки
В матрице А размера 7 × 5 удалить строку с максимальной суммой положительных элементов строки. ...

Найти строку с наибольшей и наименьшей суммой элементов матрицы
В общем дали на дом по информатике такие 2 задачи. 1. Дана прямоугольная матрица. Найти строку с...

Поиск строки с минимальной суммой элементов в двумерном массиве
Доброго времени суток! Прошу помочь в несложном вопросе: найти строку с минимальной суммой...

Удалить строку с минимальной длиной в линейном однонаправленном списке
Помогите, пожалуйста. Создать линейный однонаправленный список строк. Удалить строку с минимальной...

Строку матрицы с большей суммой отсортировать по убыванию
Добрый вечер! Помогите пожалуйста. Есть двумерный массив (2,5), надо найти строку, сумма элементов...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2013, 22:52

Найти строки матрицы с наибольшей и наименьшей суммой элементов
задание Составьте программу для решения следующей задачи обработки двумерных массивов...

Каждый элемент матрицы заменить суммой элементов подматрицы
Помогите, пожалуйста, с заданием._) Нарастающий итог. Каждый элемент аij матрицы А(m, n) заменить...

Найти номер строки матрицы с наибольшей суммой элементов
Дана матрица размера M**N. Найти номер ее строки с наибольшей суммой элементов и вывести данный...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru