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

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

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

Задачи с массивами (Ошибка) - C++

07.01.2009, 13:37. Просмотров 895. Ответов 8
Метки нет (Все метки)

Ребят, учусь на первом курсе, экзамен по программированию..задача на массивы
двумерном массиве 8х10 поменять местами левую верхнюю четверть и правую нижнюю четверть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
int main()
{
    int m[8][10];
    int a;
    int i,j;
//Vvod
    for(i=0;i<=7;i++)
    {for(j=0;j<=9;j++)
    cin>>m[i][j];};
    for(i=0;i<=7;i++)
    {for(j=0;j<=9;j++)
    cout<<m[i][j]<<" "<<endl;};
//Обработка информации
    for(i=0;i<=7;i++)
    {for(j=0;j<=9;j++)
    a=0;
    a=m[i][j];
    m[i][j]=m[i+4][j+5];
    m[i+4][j+5]=a;
    cout<<m[i+4][j+5]<<" "<<endl;};
    return(1);
    }
выдает ошибку Error spawning cl.exe
подскажите, в чем дело?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
8510 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
07.01.2009, 13:58     Задачи с массивами (Ошибка) #2
сама работоспособность программы сомнительна мне, но вот в чем дело:
строки 16-17 вы просто 10 раз а присваете 0, а потом когда J = 10 вы пытаетесь обратиться к элементу 10 + 5, тобишь 15, когда у вас матрица только на 10 элементов... да и если бы у вас были скобки в нужных местах второго цикла, вы все равно вылезете за пределы... нужно вам подумать на счет границ в циклах, они по идее должны быть хотя бы в два раза меньше от исходного размера матрицы...
Lenochka
0 / 0 / 0
Регистрация: 07.01.2009
Сообщений: 8
07.01.2009, 15:37  [ТС]     Задачи с массивами (Ошибка) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
int main()
{
    int m[8][10];
    int i,j;
//Vvod
for(i=0;i<=7;i++)
    {
      for(j=0;j<=9;j++)
        cin>>m[i][j];
    };
//Обработка информации
for(i=0;i<=3;i++)
    {
          for(j=0;j<=2;j++)
       m[0][0]=m[4][5];
      m[i][j]=m[i+4][j+5];
      cout<<m[i+4][j+5]<<" "<<endl;
    };
return(1);
    }
а если так?
Lord_Voodoo
Супер-модератор
8510 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
07.01.2009, 16:03     Задачи с массивами (Ошибка) #4
ну что вы снова угадываете? теперь вылетать не будет, но и всех элементов не возьмет, и снова же вы неверно цикл строите второй (стр. 15-16), вы цикле одну и туже операцию делаете...
Lenochka
0 / 0 / 0
Регистрация: 07.01.2009
Сообщений: 8
07.01.2009, 16:07  [ТС]     Задачи с массивами (Ошибка) #5
ну подскажите пожалуйста как это исправить, я уже всю голову сломала.я поэтому и написала сюда, так как сама не могу понять как надо поменять и на что
Lord_Voodoo
Супер-модератор
8510 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
07.01.2009, 16:27     Задачи с массивами (Ошибка) #6
вроде бы работает:
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
int main()
{
   int m[8][10];
   int i,j,a;
   //Vvod
   for(i = 0;i <= 7;i++)
     for(j = 0;j <= 9;j++) cin >> m[i][j];
   cout<<"Matrix"<<endl;
   for(i = 0;i <= 7;i++){
     for(j = 0;j <= 9;j++) cout<<m[i][j]<<" ";
     cout<<endl;
   }
  //ГЋГЎГ°Г*áîòêГ* ГЁГ*ôîðìГ*öèè
  for(i = 0;i <= 3;i++)
    for(j = 0;j <= 4;j++){
      a = m[i][j];
      m[i][j] = m[i + 4][j + 5];
      m[i + 4][j + 5] = a;
    };
   cout<<"New Matrix"<<endl;
   for(i = 0;i <= 7;i++){
     for(j = 0;j <= 9;j++) cout<<m[i][j]<<" ";
     cout<<endl;
   }
  return 1;
}
Lenochka
0 / 0 / 0
Регистрация: 07.01.2009
Сообщений: 8
07.01.2009, 16:31  [ТС]     Задачи с массивами (Ошибка) #7
Спасибо большое,поняла ошибку..вот только у меня один вопрос, с 21 строки для чего, если мы уже вывели новую матрицу?
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.01.2009, 16:37     Задачи с массивами (Ошибка) #8
Lenochka, а по-моему на двадцатой строке мы только вывели надпись "New matrix", а саму матрицу - нет.
Или Вы думаете, что cout<<"New matrix" понимает, что надо вывести новую матрицу?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2009, 16:38     Задачи с массивами (Ошибка)
Еще ссылки по теме:

C++ Задачи с массивами
Небольшие задачи с массивами C++
C++ Задачи с массивами
Задачи с массивами C++
Ошибка в коде (работа с массивами) C++

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

Или воспользуйтесь поиском по форуму:
Lenochka
0 / 0 / 0
Регистрация: 07.01.2009
Сообщений: 8
07.01.2009, 16:38  [ТС]     Задачи с массивами (Ошибка) #9
сглупила, поняла уже после того как написала)еще раз спасибо)
Yandex
Объявления
07.01.2009, 16:38     Задачи с массивами (Ошибка)
Ответ Создать тему
Опции темы

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