Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
San4ez
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
#1

Матрица, поиск наименьешего в строках - C++

14.12.2011, 11:53. Просмотров 336. Ответов 8
Метки нет (Все метки)

Здравствуйте!
Проблема (
Задача: Дана матрица nxm, определить наименьшие числа в строках.
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main()
{
    int i,j,n,m,min,a[i][j];
    for(i = 0; i < n; i++)
    {
        min ^= min;
        for(j = 1; j < m; j++)
            if(a[i][j] < a[i][min])
                min = j;
                
                cout << min;
    }
    system("pause");
}
Компилируется без ошибок, но при выполнении программы в командной строке ничего не происходит и появляется ошибка "Ваша программа вызвала нарушение доступа (ошибка сегментации). Что это? Первый раз с такой ошибкой сталкиваюсь. Подскажите плз, и по возможности подправьте код.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 11:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Матрица, поиск наименьешего в строках (C++):

Матрица. Сумма элементов в строках, не содержащих отрицательные элементы. - C++
Дана целочисленная квадратная матрица. Определить: 1) сумму элементов в тех строках, которые не содержат отрицательных эле- ментов; ...

Поиск в строках - C++
Помогите пожалуйста найти самое короткое слово в предложении из всех слов с длиной не менее 4 символов.

Поиск строки в строках - C++
Работаю с MFC, классом CString. Даны строчки &quot;http://localhost/123/favicon.ico&quot;, &quot;http://localhost/123/24/SERVER.exe&quot;... хранящие...

Поиск в строках файла - C++
Можете помочь с заданием ? Задан текстовый файл. В каждой строке файла найти слова з наибольшим количеством гласных букв. Заранее...

Поиск чисел в строках файла - C++
Во входном файле in.txt содержатся две строчки целых чисел, например: -1 5 -7 -3 9 4 3 5 4 6 -7 2 10 -7 Строчки могут иметь...

Поиск в строках с помощью strstr - C++
Помогите блондинке!!! как воспользоваться функцией char *strstr(const char *s1, const char *kor); если мне потом нужно все...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alkagolik
Заблокирован
14.12.2011, 12:02 #2
Цитата Сообщение от San4ez Посмотреть сообщение
Что это?
это нарушение программой границ отведенной для нее памяти. Обращение к "чужой" области памяти. Строка 10 кода.

Добавлено через 3 минуты
кроме того что вы неверно проверяете минимум, также ваш минимум в случае ни одного выполнения условия по столбцам так и останется нулем, а не минимумом из чисел. Поэтому лучше не обнуляйте его, а присваивайте значение нулевого столбца i-той строки.
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.12.2011, 12:19 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main()
{
    int i,j,n,m,min,a[i][j];
    for(i = 0; i < n; i++)
    {
        min = 0;
        for(j = 1; j < m; j++)
            if(a[i][j] < a[i][min])
                min = j;
                
                cout << min;
    }
    system("pause");
}
0
San4ez
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
14.12.2011, 12:31  [ТС] #4
Цитата Сообщение от alkagolik Посмотреть сообщение
это нарушение программой границ отведенной для нее памяти. Обращение к "чужой" области памяти. Строка 10 кода.
Спасибо, я так думаю вот это
C++
1
a[i][min]
"ни к селу ни к городу" ?

Thinker, таже самая ошибка.
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.12.2011, 12:37 #5
Цитата Сообщение от San4ez Посмотреть сообщение
Thinker, таже самая ошибка.
Где ошибка. Что это вы выдумали. Переменная min будет хранить номер первого столбца с минимальным значением. И так для каждой строчки.
0
alkagolik
Заблокирован
14.12.2011, 12:39 #6
Цитата Сообщение от San4ez Посмотреть сообщение
"ни к селу ни к городу" ?
ага, только я сейчас внимательней посмотрел. Суть немного другая. Во - первых вы ищете не минимум, а индекс столбца с минимумом. поменяте условие так
C
1
2
if(a[i][j] < min)
    min = a[ i ][ j ];
а во - вторых у вас размера матрицы нет, неинициализированы явно n, m. Может это влияет.

Добавлено через 1 минуту
C
1
for(j = 1/*тут нуль надо поставить*/; j < m; j++)
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.12.2011, 12:39 #7
Цитата Сообщение от alkagolik Посмотреть сообщение
у вас размера матрицы нет, неинициализированы явно n, m. Может это влияет.

Не по теме:

Тоже только заметил, вот невнимательность

0
San4ez
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
14.12.2011, 13:14  [ТС] #8
Щас попробую =)

Добавлено через 13 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
int main()
{
    int i,j,n,m,min,a[i][j];
    cin >> n;
    cin >> m;
    cout << "\n\n";
    for(i = 0; i < n; i++)
    {
        min = 0;
        for(j = 0; j < m; j++)
            if(a[i][j] < min)
              min = a[i][j];
                
                cout << min;
    }
    cout << "\n\n";
    system("pause");
}
Сделал чтоб n и m вводились с клавиатуры и поправил условие, компилируется, работает без ошибок, но выводит всегда "0". Это так и должно быть? Ибо, программа выводит самый возможны минимум да? Чтобы выводила другие числа, нужно самому заполнять матрицу конкретными значениями?
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.12.2011, 13:39 #9
Цитата Сообщение от San4ez Посмотреть сообщение
int i,j,n,m,min,a[i][j];


Добавлено через 1 минуту
Цитата Сообщение от San4ez Посмотреть сообщение
Это так и должно быть?
Судя по вашему коду, никто не может сказать, т.к. i,j хранит какой-то "мусор".
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2011, 13:39
Привет! Вот еще темы с ответами:

Поиск подстроки в двух строках - C++
Суть такая, вводим 2 строки, программа должна найти максимальную подстроку из двух строк... Пример leybar //1 строка hey //2ая ...

Интерполирующий поиск в символьных строках - C++
Задание: найти заданный элемент в отсортированном массиве символьных строк Нужно переделать программу с последовательным поиском в...

Поиск максимума в строках матрицы - C++
Здравствуй...Помги пожалуйста решить задачу..Что бы было простое решения,можно несколько решений и желательно простых.....(с полными...

Матрица. Создать и напечатать вектор b элементами которого являются числа кратные 3 в строках матрицы A - C++
дано матрицу A: 4x6. Создать и напечатать вектор b элементами которого являются числа кратные 3 в строках матрицы A . Упорядочено ли вектор...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.12.2011, 13:39
Ответ Создать тему
Опции темы

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