Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 8

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

03.06.2011, 14:43. Показов 3425. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите, пожалуйста, написать программу на С.
Задание
Написать программу, которая:
- вводит из файла In.txt матрицу А(M,N), где M(число строк) и N(число столбцов) не превышают десяти;
- выполняет действия в соответствии с вариантом заданием;
- выводит в файл значения М и N, исходную матрицу и массив с результатами.
По умолчанию все массивы вещественные
Вариант 6.Найти максимальный отрицательный элемент каждой строки матрицы А. Результаты записать в одномерный массив S. Для строк матрицы, не содержащих отрицательных элементов, в результирующий массив записать 0.
Заранее благодарна.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2011, 14:43
Ответы с готовыми решениями:

Для каждой строки матрицы определить максимальный отрицательный элемент и среднее арифметическое положительных
Здравствуйте. Помогите пожалуйста написать программу: С клавиатуры вводятся два целых числа – М и К. 1<M<10, 1<K<10. (М...

Найти минимальный элемент каждой строки и максимальный элемент каждого столбца матрицы
как найти минимальный элемент каждой строки и максимальный элемент каждого столбца матрицы на с++ Добавлено через 6 минут ...

Найти максимальный элемент каждой строки матрицы
Дано двумерный массив. Найти максимальный элемент каждой строки и его индекс.Спасибо заранее!

14
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 8
04.06.2011, 19:35  [ТС]
Народ, помогите, хотя бы с первым пунктом - чтением матрицы из файла и записи этих данных в двумерный массив! Остальное я надеюсь написать, но с этим никаких идей... Что ни пробовала ничего не получается. Надеюсь на понимание.
0
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
04.06.2011, 19:54
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <fstream>
 
int main()
{
    std::ifstream ifs("1.txt");
 
    int i, j, size = 5;
    int **in;
    in = new int*[size];
    for(i=0; i<size; ++i){
        in[i] = new int[size];
    }
 
    for(i=0; i<size; ++i){
        for(j=0;j<size;++j){
            ifs >> in[i][j];
        }
    }
 
    ifs.close();
    for(i=0; i<size; ++i)
        delete[] in[i];
 
    delete[] in;
 
    return 0;
}
чтение из файла 1.txt матрицы 5*5 (size) и помещение данных в двумерный массив in[][].
0
6 / 6 / 2
Регистрация: 04.06.2011
Сообщений: 10
04.06.2011, 19:57
AleksaDemon, M и N откуда брать?
0
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 8
04.06.2011, 20:06  [ТС]
Их нужно высчитывать.... Матрица дается в файле и может быть любой. Но не больше чем 10*10.
0
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
04.06.2011, 20:14
AleksaDemon, а сразу сказать нельзя было? =) и как их высчитывать? допустим элементов в файле 24 - матрица 6 на 4, или 8 на 3?
0
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 8
04.06.2011, 20:24  [ТС]
Ну в полном задании это написано. А так из того, что я поняла количество строк мы высчитываем считая количество строк, которые считываем, а количество столбцов, когда преобразовываем строку в числа. Сколько чисел в строке, столько и столбцов. То есть, как я понимаю мы в начале заносим в массив, а потом получаем количество столбцов. Но если с подсчетом строк проблемы не возникает, то количество столбцов у меня не считается никак. Я никак не могу перевести строку в числа и их сосчитать, попутно занося в массив.((((
0
6 / 6 / 2
Регистрация: 04.06.2011
Сообщений: 10
04.06.2011, 20:36
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

AleksaDemon,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using namespace std;
main()
{
      ifstream f;
      int i,j,size,n,m;
      float a[100];
      f.open("In.txt");
      for(i=0;!f.eof();i++)
      f>>a[i];
      size=i;
      
      for(i=10;i>=2;i--)
      if(size%i==0)
      {
                   n=i;
                   m=size/n;
                   break;
                   }
      float **x;
      x=new float *[n];
      for(i=0;i<n;i++)
      x[i]=new float [m];
      
      for(i=0;i<n;i++)
      for(j=0;j<m;j++)
      x[i][j]=a[j*m+i];
Как такое решение?
Только у меня n и m перепутаны, по привычке.
0
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 8
04.06.2011, 20:59  [ТС]
Эм... Маленькая проблема... Это на С++, а у меня программа на Си.... А так сижу разбираюсь!=)
0
6 / 6 / 2
Регистрация: 04.06.2011
Сообщений: 10
04.06.2011, 21:05
Ну, в общем, идея в том, чтобы переписать все числа из файла в массив, потом разделить количество чисел в массиве на число от 10 до 2, чтобы делилось без остатка (это и будет число строк/столбцов), а частное будет соответственно столбцами/строками. Так что главное мы нашли m и n, а дальше уже подсказали выше.
1
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 8
04.06.2011, 21:07  [ТС]
Вот то, что я пыталась сделать... Количество строк он даже считает.... Но, возможно, это все чушь(((
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
int main(void)
{
  int i, j; // объявлены все переменные
  FILE  *Out; //указатель на файл с результатами
  Out = fopen("Ar2.txt","a+"); // открыть файл с результатами
  //probuem...
  double **a; // Адрес массива указателей
  int M, N;   // Размеры матрицы: m строк, n столбцов
// Захватывается память под массив указателей
a = (double **) malloc(M * sizeof(double *));
M=0;
N=0;
for (i = 0; i < M; ++i) {
// Захватывается память под строку с индесом i
a[i] = (double *) malloc(N * sizeof(double));
}
i=0;
j=0;
char line[512];
double l[i][j];
 
//podschet strok
int numChars = 0;
int k=0;
int num;
while ((num = fread(line, 1, 512, Out)) > 0) {
    numChars += num;
for (k = 0; k < num; ++k) {
 
            if (line[k] == '\n') {
 
                ++M; // Увеличиваем число строк
 
            }
 
}
}
printf("M = %d\n", M);
while(fgets( line, 255, Out) != NULL){
     l[i++][j]=atof(strtok(line, " "));
     while(((strtok(line, " "))!= NULL) && (i<=10)){
     l[i++][j]=atof(strtok(NULL, " "));
     fprintf(stdout, " %f   ", l[i][j]);
     fprintf(stdout, " \n");
     N++;
     }
     j++;
     printf( "%s", line);
 
}
0
6 / 6 / 2
Регистрация: 04.06.2011
Сообщений: 10
04.06.2011, 21:56
C
1
2
3
4
5
6
int M, N;   // Размеры матрицы: m строк, n столбцов
// Захватывается память под массив указателей
a = (double **) malloc(M * sizeof(double *));
M=0;
N=0;
for (i = 0; i < M; ++i)
Здесь не имеет смысла выделять память под массив, так как до инициализации М значение ее непредсказуемо, а потом не будет работать цикл, потому что М уже рано нулю.
0
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 8
04.06.2011, 22:11  [ТС]
Спасибо. И что сделать с этой строчкой? Удалить или переставить?
0
6 / 6 / 2
Регистрация: 04.06.2011
Сообщений: 10
04.06.2011, 22:18
Думаю, нужно объявлять массив, когда уже найдешь М и N, тогда все должно быть в порядке.
0
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 8
04.06.2011, 22:43  [ТС]
Спасибо! Так выглядит лучше. Правда у меня весь массив - нули, но теперь он хоть появляется!=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2011, 22:43
Помогаю со студенческими работами здесь

Для каждой строки матрицы найти максимальный отpицательный элемент
Даны вещественные массивы F, A. Опpеделить значения массивов X,V, где X=максимальному отpицательному значению i‐й стpоки ...

Найти максимальный элемент каждой строки матрицы и заменить его на 0
Дан двумерный массив найти максимальное число каждой строки и заменить на 0.

Для каждой строки матрицы найти максимальный элемент и записать их в одномерный массив
Все привет, ребят, помогите с программой пожалуйста.. Вот задание: Для каждой строки матрицы найти максимальный элемент и записать их в...

Для каждой строки матрицы определить минимальный элемент, среди которых найти максимальный
Задание: Дан двумерный массив из 5 строк и 6 столбцов. Определить для каждой строки минимальный элемент. Среди этих элементов найти...

Массив: Найти максимальный элемент каждой строки и максимальный элемент каждого столбца.
Задан массив случайных действительных чисел Array(N,N). Найти максимальный элемент каждой строки и максимальный элемент каждого столбца.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru