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

В чём ошибка? - C++

Восстановить пароль Регистрация
 
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 101
08.12.2013, 22:09     В чём ошибка? #1
В двумерном массиве удалить все строки, в которых среднее арифметическое элементов является двузначным числом.

Выдаёт ошибку 35:22: error: name lookup of 'z' changed for ISO 'for' scoping [-fpermissive]
В чём проблема?
И правильно ли я составил программу вообще?

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 <iostream>
#include <cstdlib>
using namespace std;
int main(){
    int a[100][100];
 
    int s=0, sa; int k=0;
 
   int n,m; cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;;cin>>n>>m;
   for (int i=0; i<n; i++){
 for (int j=0; j<m; j++)
{cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}
}
 
 
 
 
 
    for(int i=0;i<n; i++)
    {for (int j=0;j<m;j++)
    {s+=a[i][j];k++;}
    sa=s/k;
    if (abs(sa)>9&& abs(sa)<100)
    {
    for (int j=0;j<m;j++)
    {a[i][j]=a[i+1][j];}
             }
 
        }
for (int z=0; z<n; z++)
cout<<"\n";
for (int j=0; j<m; j++)
             cout<<a[z][j]<<"\t"; //в этой строке ошибка
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 22:09     В чём ошибка?
Посмотрите здесь:

В чём ошибка???((( C++
C++ В чём ошибка?
C++ В чём ошибка ?
В чём ошибка C++
C++ В чём ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
08.12.2013, 22:19     В чём ошибка? #2
filimoncc, в фигурных скобочках вы обсчитались.
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 101
08.12.2013, 22:36  [ТС]     В чём ошибка? #3
Ryuk, где конкретно?
VBmaster98
19 / 18 / 2
Регистрация: 30.09.2012
Сообщений: 35
08.12.2013, 22:54     В чём ошибка? #4
C++
1
2
3
4
5
6
7
8
9
10
11
using namespace std;
int main(){
    int a[100][100];
 
    int s=0, sa; int k=0;
 
   int n,m; cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;;cin>>n>>m;
   for (int i=0; i<n; i++){
 for (int j=0; j<m; j++)
{cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}
}//-лишняя скобка
если у Вас после for идет конец операций и Вы ставите } и сразу же ещё }(конец операций функции main???)...где возврощаемое значение main???return 0;???в конце...
значит это Ваша опечатка)Надесь что поможет)))
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
08.12.2013, 23:03     В чём ошибка? #5
когда вот так абы как расставляют отступы тогда и возникают подобного рода проблемы.
требования к оформлению кода не из пальца высосаны, а здравым смыслом.
хорошо структуированный код легче понимать, легче искать ошибки.
не экономте на строчках. от этого читабельность кода сильно страдает.
вот на коленке расставил не особо разбираясь, что там у вас должно быть:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
  int a[100][100];
 
  int s=0, sa; int k=0;
 
  int n,m;
  cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;
  cin>>n>>m;
 
  for (int i=0; i<n; i++)
  {
    for (int j=0; j<m; j++)
    {
      cout<<"a["<<i<<"]["<<j<<"]=";
      cin>>a[i][j];
    }
  }
 
  for(int i=0;i<n; i++)
  {
    for (int j=0;j<m;j++)
    {
      s+=a[i][j];k++;}
      sa=s/k;
      if (abs(sa)>9&& abs(sa)<100)
      {
        for (int j=0;j<m;j++)
        {
          a[i][j]=a[i+1][j];
        }
      }
    }
 
  // хз тут или дальше должна быть закрывающая.
  // c огириганльными отступами фиг разберешься.
 
  for (int z=0; z<n; z++)
    cout<<"\n";
 
  for (int j=0; j<m; j++)
    cout<<a[z][j]<<"\t"; //в этой строке ошибка
 
  return 0;
}
кажется наглючил в 28 строке. но суть - не найти вам ошибку, а показать, что
форматирование кода - полезная вещь. старайтесь придерживаться.
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 101
08.12.2013, 23:17  [ТС]     В чём ошибка? #6
Со скобками разобрался, а вот сама программа не правильно работает. Помогите отладить правильно.

Добавлено через 3 минуты
Цитата Сообщение от VBmaster98 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
using namespace std;
int main(){
    int a[100][100];
 
    int s=0, sa; int k=0;
 
   int n,m; cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;;cin>>n>>m;
   for (int i=0; i<n; i++){
 for (int j=0; j<m; j++)
{cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}
}//-лишняя скобка
если у Вас после for идет конец операций и Вы ставите } и сразу же ещё }(конец операций функции main???)...где возврощаемое значение main???return 0;???в конце...
значит это Ваша опечатка)Надесь что поможет)))
Для помеченной вами закрывающейся скобки "лишняя скобка", в 8 строке в конце стоит открывающаяся. Так что со скобками порядок.

Добавлено через 7 минут
Цитата Сообщение от DU Посмотреть сообщение
когда вот так абы как расставляют отступы тогда и возникают подобного рода проблемы.
требования к оформлению кода не из пальца высосаны, а здравым смыслом.
хорошо структуированный код легче понимать, легче искать ошибки.
не экономте на строчках. от этого читабельность кода сильно страдает.
вот на коленке расставил не особо разбираясь, что там у вас должно быть:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
  int a[100][100];
 
  int s=0, sa; int k=0;
 
  int n,m;
  cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;
  cin>>n>>m;
 
  for (int i=0; i<n; i++)
  {
    for (int j=0; j<m; j++)
    {
      cout<<"a["<<i<<"]["<<j<<"]=";
      cin>>a[i][j];
    }
  }
 
  for(int i=0;i<n; i++)
  {
    for (int j=0;j<m;j++)
    {
      s+=a[i][j];k++;}
      sa=s/k;
      if (abs(sa)>9&& abs(sa)<100)
      {
        for (int j=0;j<m;j++)
        {
          a[i][j]=a[i+1][j];
        }
      }
    }
 
  // хз тут или дальше должна быть закрывающая.
  // c огириганльными отступами фиг разберешься.
 
  for (int z=0; z<n; z++)
    cout<<"\n";
 
  for (int j=0; j<m; j++)
    cout<<a[z][j]<<"\t"; //в этой строке ошибка
 
  return 0;
}
кажется наглючил в 28 строке. но суть - не найти вам ошибку, а показать, что
форматирование кода - полезная вещь. старайтесь придерживаться.
А я думал мне здесь помогут ошибки найти...
Ryuk
09.12.2013, 00:40
  #7

Не по теме:

Добавлено через 4 минуты
VBmaster98, я нашел все скобочки

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
36
37
38
39
40
41
int main()
{
    int a[100][100];
 
    int s=0, sa; int k=0;
 
    int n,m; cout<<"Vvedite n<=10 i m<=10 (kol-vo elementov v maccive)"<<endl;;cin>>n>>m;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<m; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];
        }
    }
     
     
     
     
     
        for(int i=0;i<n; i++)
        {
            for (int j=0;j<m;j++)
            {
                s+=a[i][j];k++;
            }
                sa=s/k;
                if (abs(sa)>9&& abs(sa)<100)
                {
                    for (int j=0;j<m;j++)
                    {
                        a[i][j]=a[i+1][j];
                    }
                }
 
        }
            for (int z=0; z<n; z++)
                cout<<"\n";
            for (int j=0; j<m; j++)
             cout<<a[z][j]<<"\t"; //в этой строке ошибка
    return 0;
}

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 00:44     В чём ошибка?
Еще ссылки по теме:

C++ В чём ошибка?
Выскакивает ошибка Stack around the voriable 'text' was corrupted. Подскажите пожалуйста в чём ошибка C++
C++ В чём ошибка?

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

Или воспользуйтесь поиском по форуму:
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 101
09.12.2013, 00:44  [ТС]     В чём ошибка? #8
Ryuk, пожалуйста напишите код программы, чтобы в двумерном массиве удалялись все строки, в которых среднее арифметическое элементов является двузначным числом.
Yandex
Объявления
09.12.2013, 00:44     В чём ошибка?
Ответ Создать тему
Опции темы

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