2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Crash (access violation)
Сообщение12.05.2011, 21:16 


01/10/10
97
Здравствуйте.

Решал задачу на сайте http://acm.timus.ru

Вот условие задачи: http://acm.timus.ru/problem.aspx?space=1&num=1146

Написал код. На компе он работает, а на сайте пишет Crash (access violation) :(
Код:
#include <stdio.h>
int main()
{
   

   int n, i=0, k=0, x0=0, x1=0, y0=0, y1=0, S=0, max=0, j=0;


scanf("%d%d", &n);


int **A=new int* [n];
for (i=0; i<n; i++)
{
A[i]=new int[n];
}

for (i=0;i<n;i++)
{
  for (j=0;j<n;j++)
  scanf ("%d%d", &A[i][j]);
}

   for (x0=0; x0<n; x0++)
   {
      for (y0=0; y0<n; y0++)
      {
         for (y1=n-1; y1>=y0; y1--)
         {
            for (x1=n-1; x1>=x0; x1--)
            {

               
               for (k=x0; k<=x1; k++)
               {
                  for (i=y0; i<=y1; i++)
                  {
                     S=S+A[k][i];
                     

               
                  }

               }
                     if (S>max)
               {max=S;}
                     S=0;
               
               
            }
         }
      }
   }


printf("%d\n", max);


    return 0;
}


Как эту ошибку исправить?

P.S. Как увеличить скорость выполнения программы я знаю, но сперва хочу попробовать именно такой код.

 Профиль  
                  
 
 Re: Crash (access violation)
Сообщение12.05.2011, 23:42 
Заслуженный участник


09/08/09
3438
С.Петербург
Зачем Вы два раза '%d' в спецификации формата указываете?
Код:
scanf("%d%d", &n);
Код:
scanf ("%d%d", &A[i][j]);
У Вас каждый вызов пытается ввести с консоли два числа, причем второе -- неизвестно куда. Отсюда, скорее всего, и access violation.

 Профиль  
                  
 
 Re: Crash (access violation)
Сообщение13.05.2011, 08:58 


01/10/10
97
Всмысле? Мне надо сперва считать из первой строки 1 число, а потом начат считывать двумерный массив.

Если вы имеете ввиду, что надо писать fscanf, то я смотрел в мануале, там написано, что надо писать именно scanf.

 Профиль  
                  
 
 Re: Crash (access violation)
Сообщение13.05.2011, 09:18 
Заслуженный участник


09/08/09
3438
С.Петербург
Ketsyki в сообщении #445300 писал(а):
Всмысле? Мне надо сперва считать из первой строки 1 число, а потом начат считывать двумерный массив.
По спецификации формата "%d%d" scanf пытается ввести два целых числа, а в списке ввода у Вас только одно. Замените
Код:
scanf("%d%d", ...)
на
Код:
scanft("%d", ...)

 Профиль  
                  
 
 Re: Crash (access violation)
Сообщение13.05.2011, 09:31 


01/10/10
97
Упс. :)
Спасибо :)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group