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

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

Войти
Регистрация
Восстановить пароль
 
 
Владиславик
-131 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 139
#1

Не могу найти ошибки - C++

30.10.2013, 13:20. Просмотров 432. Ответов 17
Метки нет (Все метки)

Не могу в коде найти ошибки. Вроде бы код правильный, но программа ругается.
Предисловие. Задача.
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера nxn по часовой стрелке, начиная с блока в левом верхнем углу.
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 4
void main()
{
int a[n][n],i,j,max1,max2,max;
max1=a[0][0];max2=a[n/2][n/2];
//clrscr();
for(i=0;i<n;i++)
 for(j=0;j<n;j++)
  // a[i][j]=random(100);
  scanf("%d    ",a[i][j]);
//system("pause");
 
   for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
 printf("%d      ",a[i][j]);
 printf("\n");}
 
for(i=0;n<n/2+1;i++)
 for(j=i;j<n-i;j++)
  if(a[j][n-j-1]>max1)
      max1=a[j][n-i-1];
 
    for(i=n/2;i<n;i++)
     for(j=n-i-1;j<i+1;j++)
       if (a[j][n-j-1]>max2)
      max2=a[j][n-i-1];
  if(max1>max2)max=max1; else max=max2;
  printf("maks = %d  max1=%d, max2 = %d",max,max1,max2);
 
  getch();
  }
Помогите разобраться.. Вот скриншот программы с ошибкой.
Не могу найти ошибки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2013, 13:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не могу найти ошибки (C++):

не могу найти ошибки - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;iostream.h&gt; class primer { public: void run(double x, double y, double z); ...

НЕ могу найти ошибки (с++) - C++
Написать программу, которая «сжимает» текстовый файл, считывая его и заменяя все повторяющиеся символы ххх… текстом х(n), где х - ...

Не могу найти причину ошибки ! - C++
#include&lt;locale.h&gt; #include&lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;time.h&gt; #include&lt;algorithm&gt; #include&lt;vector&gt; using namespace...

Ввести целое число N > 0, являющееся некоторой степенью числа 2 Ошибки не могу найти - C++
Ввести целое число N &gt; 0, являющееся некоторой степенью числа 2: N=2K. Найти целое число K — показатель этой степени. Не разрешается...

нужно найти ошибки в задаче на языке C/ их в районе 10 как выдает компилятор но я не могу их исправить (не знаю как) - C++
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; void main() { int xa, ya, xb, yb; cprintf(&quot;vvod xa, ya, xb, yb&quot;); ...

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

17
castaway
Эксперт С++
4924 / 3032 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
30.10.2013, 13:25 #2
scanf( "%d ", &a[i][j] );
0
Владиславик
-131 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 139
30.10.2013, 16:03  [ТС] #3
castaway, в том то и дело, я пробовал так, ошибка сохраняется. Может дело в другом?
-Скриншот с ошибкой прилагается-

Добавлено через 2 часа 21 минуту
А может дело в другом коде, к примеру в процедуре?
0
castaway
Эксперт С++
4924 / 3032 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
30.10.2013, 16:11 #4
Цитата Сообщение от Владиславик Посмотреть сообщение
А может дело в другом коде, к примеру в процедуре?
А может дело в тебе!?
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 16:30 #5
Владиславик, массив a[n][n] неинициализирован, а здесь:
C++
1
max1=a[0][0];
обращение к его элементу по индексам.
0
ValeryS
Модератор
6963 / 5300 / 522
Регистрация: 14.02.2011
Сообщений: 17,879
30.10.2013, 16:36 #6
Цитата Сообщение от alsav22 Посмотреть сообщение
массив a[n][n] неинициализирован.
как это?
он же потом вводит данные
Цитата Сообщение от Владиславик Посмотреть сообщение
scanf("%d * *",a[i][j]);
правда коряво
во первых нужен адрес а на значения,во вторых что значат эти пробелы после d????
0
castaway
Эксперт С++
4924 / 3032 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
30.10.2013, 16:39 #7
Да у него в 10-й строке чёрт пойми что творится, компилятор за всем не успевает..
0
ValeryS
Модератор
6963 / 5300 / 522
Регистрация: 14.02.2011
Сообщений: 17,879
30.10.2013, 16:50 #8
Цитата Сообщение от castaway Посмотреть сообщение
Да у него в 10-й строке чёрт пойми что творится,
ну уж прям черте че
да в
max1 и max2 будет мусор , но сточки зрения компилятора криминала я не вижу

Добавлено через 4 минуты
alsav22,
пардон, как то не сразу понял твою мысль
что в max1 будет мусор
правда так хочу добавить что VS для неинициализированых в Дебиг режиме прописывает 0xcdcdcdcd и ошибка может не проявится
0
castaway
Эксперт С++
4924 / 3032 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
30.10.2013, 16:51 #9
Я что-то не пойму.. вы ТС защищаете? Разумеется "это" скомпилируется, я же говорю о правильности логики кода, и в 10-й строке откровенный бред.
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 16:53 #10
Цитата Сообщение от ValeryS Посмотреть сообщение
правда так хочу добавить что VS для неинициализированых в Дебиг режиме прописывает 0xcdcdcdcd и ошибка может не проявится
Студия предупреждение выводит (на скрине), о чём ТС и спрашивает, а я отвечаю. До остальных ошибок код просто не доходит, если не нажать продолжить (ТС, наверное, не жмёт, и правильно делает. Сначала это нужно исправить).
0
ValeryS
Модератор
6963 / 5300 / 522
Регистрация: 14.02.2011
Сообщений: 17,879
30.10.2013, 16:57 #11
Цитата Сообщение от castaway Посмотреть сообщение
Я что-то не пойму.. вы ТС защищаете?
нет
я на это реагирую
Цитата Сообщение от castaway Посмотреть сообщение
компилятор за всем не успевает..
вот и говорю
Цитата Сообщение от ValeryS Посмотреть сообщение
но сточки зрения компилятора криминала я не вижу
в смысле что компилятор не обязан следит за инициализацией,у него своих забот хватает

Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Студия предупреждение выводит
пардон до скинов то я не добрался
вообще то это ошибка выполнения
кстати никогда такую не встречал
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 16:58 #12
Цитата Сообщение от ValeryS Посмотреть сообщение
кстати никогда такую не встречал
Наверное, не делаете, вот и не встречаете. Предупреждение хорошее.
0
ValeryS
Модератор
6963 / 5300 / 522
Регистрация: 14.02.2011
Сообщений: 17,879
30.10.2013, 17:05 #13
Цитата Сообщение от alsav22 Посмотреть сообщение
Наверное, не делаете, вот и не встречаете.
может быть
есть определенные куски кода которые пишутся на "автомате"
будет время попытаюсь сэмулировать эту ошибку
у меня есть VS 2008, VS2010, Qt5.1, Keil 4.0, CVAvr
посмотрю кто как реагирует
может отладчик на это 0xcdcdcdcd реагирует
0
alsav22
30.10.2013, 17:20
  #14

Не по теме:


Цитата Сообщение от ValeryS Посмотреть сообщение
вообще то это ошибка выполнения
Студия и при компиляции предупреждение выводит, но ТС, наверное, не обратил на это внимание.
Цитата Сообщение от ValeryS Посмотреть сообщение
будет время попытаюсь сэмулировать эту ошибку
А что её эмулировать? Код в первом посте.

0
Владиславик
-131 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 139
30.10.2013, 17:21  [ТС] #15
alsav22, а как это исправить?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2013, 17:21
Привет! Вот еще темы с ответами:

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

Не могу исправить ошибки( - C++
List.h (декларация класса) #pragma once template &lt;typename T&gt; class List : public list &lt;T&gt; { public: void insert(T); ...

Не могу исправить ошибки.... - C++
Всем приветик!!! Помогите пожалуйста исправить ошибки......... ))) #include&quot;stdafx.h&quot; #include&quot;iostream&quot; #include&lt;conio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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