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

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

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

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

30.10.2013, 13:20. Просмотров 393. Ответов 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();
  }
Помогите разобраться.. Вот скриншот программы с ошибкой.
Не могу найти ошибки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2013, 13:20     Не могу найти ошибки
Посмотрите здесь:

не могу найти ошибки - 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++
Всем приветик!!! Помогите пожалуйста исправить ошибки......... ))) #include&quot;stdafx.h&quot; #include&quot;iostream&quot; #include&lt;conio.h&gt; ...

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

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

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

Добавлено через 4 минуты
alsav22,
пардон, как то не сразу понял твою мысль
что в max1 будет мусор
правда так хочу добавить что VS для неинициализированых в Дебиг режиме прописывает 0xcdcdcdcd и ошибка может не проявится
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
30.10.2013, 16:51     Не могу найти ошибки #9
Я что-то не пойму.. вы ТС защищаете? Разумеется "это" скомпилируется, я же говорю о правильности логики кода, и в 10-й строке откровенный бред.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 16:53     Не могу найти ошибки #10
Цитата Сообщение от ValeryS Посмотреть сообщение
правда так хочу добавить что VS для неинициализированых в Дебиг режиме прописывает 0xcdcdcdcd и ошибка может не проявится
Студия предупреждение выводит (на скрине), о чём ТС и спрашивает, а я отвечаю. До остальных ошибок код просто не доходит, если не нажать продолжить (ТС, наверное, не жмёт, и правильно делает. Сначала это нужно исправить).
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,733
30.10.2013, 16:57     Не могу найти ошибки #11
Цитата Сообщение от castaway Посмотреть сообщение
Я что-то не пойму.. вы ТС защищаете?
нет
я на это реагирую
Цитата Сообщение от castaway Посмотреть сообщение
компилятор за всем не успевает..
вот и говорю
Цитата Сообщение от ValeryS Посмотреть сообщение
но сточки зрения компилятора криминала я не вижу
в смысле что компилятор не обязан следит за инициализацией,у него своих забот хватает

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

Не по теме:


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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2013, 17:21     Не могу найти ошибки
Еще ссылки по теме:

Не могу исправить ошибки - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;stdio.h&gt; #include &lt;cctype&gt; #include &lt;windows.h&gt; #include &lt;string&gt; #include...

не могу избавится от ошибки - C++
Не знаю в чем проблема #include &quot;hash.h&quot; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;fstream&gt; using namespace std; ...

Не могу исправить ошибки - C++
// Если сумма трёх попарно различных действительных чисел x, y и z меньше 1, // то наименьшее из этих чисел заменить полусуммой двух...

Не могу исправить ошибки - C++
Я запускаю одно и тоже на одном компе в одной вижуалке - все работает, а в другой не работает, а ошибки я не знаю как исправить:( ...


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

Или воспользуйтесь поиском по форуму:
Владиславик
-131 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 139
30.10.2013, 17:21  [ТС]     Не могу найти ошибки #15
alsav22, а как это исправить?
Yandex
Объявления
30.10.2013, 17:21     Не могу найти ошибки
Ответ Создать тему
Опции темы

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