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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2013, 21:02   #1
edw1n
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 22
По умолчанию Всё та же ошибка сегментации

Дано квадратная матрица [m][m].
Надо посчитать сумму эл-тов в зарисованной области.
Безимени-2.jpg

Код:
#include <iostream>
int main (void)
{ int m, i, j, s; int a[m][m];
printf ("Enter m\n");
scanf ("%d", &m);
printf ("Enter massive elements\n");
for (i=0; i<m; i++)
    for (j=0; j<m; j++)
        scanf ("%d", &a[i][j]);
for (i=0; i<m; i++)
    { for (j=0; j<m; j++)
          printf ("%5d", a[i][j]);
          printf ("\n");
    }
for (i=0; i<m/2; i++)
    for (j=0; j<=i; j++)
        s+=a[i][j]+a[m-i-1][j]+a[i][m-j-1]+a[m-i-1][m-j-1];
    if (m%2==1)
       for (j=0; j<m; j++)
           s+=a[m/2][j];
       printf ("SUM - %d", s);
system ("pause");
return 0;
}
Программу делал препод. Попробовал запустить дома - вызывает ошибку сегментации. В чем проблема ? Помогите, пожалуйста.
edw1n вне форума Ответить с цитированием
Старый 23.02.2013, 21:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а ты отладчиком проходил?
P.S. s=0 пропиши там где переменные описываешь.
I'm learning to live...

Последний раз редактировалось Stilet; 23.02.2013 в 21:17.
Stilet вне форума Ответить с цитированием
Старый 23.02.2013, 21:14   #3
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Код:
int m, i, j, s; 

int a[m][m];
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 23.02.2013, 21:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
alexander13
Поясни... Я чет не понял...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2013, 21:28   #5
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Поясни... Я чет не понял...
Моветон так массивы объявлять.
Размер массива определяется у него переменной m, которая объявлена шагом раньше. Что в этой переменной? У меня, например, при тестовом запуске только что, было 2130567168 =)
Лучше уж константы использовать.. Или, если так хочется, чтобы размер массива задавал пользователь, то динамику.
А тут получается непонятно.. Я допускаю, что в какой-нибудь среде такой код отработает нормально.. Может такое быть, наверное.. Но это плохой стиль и вообще неправильно.
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 23.02.2013, 21:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Моветон так массивы объявлять.
А-а-а. Ну да. В ученическом компиляторе это может и пройдет (хотя не знаю даже в каком) а на практике конечно чревато.
Я то подумал что ты что-то в синтаксисе углядел такое...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2013, 22:25   #7
edw1n
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от alexander13 Посмотреть сообщение
Моветон так массивы объявлять.
Размер массива определяется у него переменной m, которая объявлена шагом раньше. Что в этой переменной? У меня, например, при тестовом запуске только что, было 2130567168 =)
Лучше уж константы использовать.. Или, если так хочется, чтобы размер массива задавал пользователь, то динамику.
А тут получается непонятно.. Я допускаю, что в какой-нибудь среде такой код отработает нормально.. Может такое быть, наверное.. Но это плохой стиль и вообще неправильно.
Да. Спасибо, не подумал об этом. Позже отпишу что получается.
edw1n вне форума Ответить с цитированием
Старый 02.03.2013, 23:51   #8
edw1n
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 22
По умолчанию

В общем убрал я int m. Компилятор начал ругать из-за того что такое делать нельзя. Вернул назад int m, как ни странно всё заработало. Не знаю почему тогда выдавало ошибку сегментации. В любом случае спасибо за помощь, товарищи
edw1n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка сегментации (С + MPI) Nelly_S Общие вопросы C/C++ 0 08.11.2012 00:03
Ошибка сегментации srs6270 Общие вопросы C/C++ 16 19.07.2012 11:31
С++ Линейные списки. Ошибка сегментации при добавлении элемента. litviak Общие вопросы C/C++ 10 30.10.2011 23:48
Работа с указателями. Ошибка сегментации. agronomchek Помощь студентам 1 24.08.2010 14:51
Ошибка сегментации при вызове system("PAUSE") Lavisa Общие вопросы C/C++ 9 01.08.2009 18:14