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

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

03.06.2011, 14:43. Показов 3395. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru