Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
-3 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 42

Вложенные циклы и необъявленные идентификаторы

29.01.2013, 13:37. Показов 1187. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть часть кода:
C++
1
2
3
4
5
6
7
8
9
10
11
for(int a=0; a<3;a++)
if (a=0) int b=1;
else if (a=1) int b=2;
else if (a=2) int b=3;
 
for(int c=0; c<3;c++)
if (c=0) int d=1;
else if (c=1) int d=2;
else if (c=2) int d=3;
 
cout<<b<<","<<d<<endl;
при проверке обязательно напишет: ошибка не объявленные идентификаторы
но ведь они же объявлены, с кавычками все в порядке.
как обойти этот маразм с объявлением идентификаторов.

если сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(int a=0; a<3;a++)
if (a=0) {int b=1;
cout<<b<<",";}
if (a=1){ int b=2;
cout<<b<<",";}
if (a=2) {int b=3;
cout<<b<<",";}
 
for(int c=0; c<3;c++)
if (c=0){ int d=1;
cout<<d<<endl;}
if (c=1){ int d=2;
cout<<d<<endl;}
if (c=2) {int d=3;
cout<<d<<endl;}
то программа заработает, но не так как мне надо, ведь мне надо получить строчки из двух переменных, а программа перейдя во вторую часть цикла будет выдавать мне по одной переменной d.
Я умышленно упростил вопрос в моей программе 23 вложенных цикла куча массивов и немеряно переменных.
не будьте сильно строги я неделю тока си изучаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2013, 13:37
Ответы с готовыми решениями:

Необъявленные идентификаторы
Пишу простенькую программу по контесту на codeforces, писал до этого на Dev C++, что-то дернуло использовать Visual Studio 17 Создал...

Ошибка: Необъявленные идентификаторы
ошибку выдает: q1,q2 не объявленные идентификаторы? но они же объявлены) думаю, наверное, надо вначале как-нибудь объявить. но как, если...

Программа не компилируется (необъявленные идентификаторы)
есть программа, на С, выдает куча ошибок связанные с необъявленными идентификаторами и тд. Помогите исправить скорее всего я думаю это в...

10
1 / 1 / 1
Регистрация: 27.05.2011
Сообщений: 23
29.01.2013, 13:57
C++
1
2
3
4
5
6
7
8
9
10
11
12
int b,d=0;
for(int a=0; a<3;a++)
if (a=0) int b=1;
else if (a=1) b=2;
else if (a=2) b=3;
 
for(int c=0; c<3;c++)
if (c=0) int d=1;
else if (c=1) d=2;
else if (c=2) d=3;
 
cout<< b <<","<< d <<endl;
0
29.01.2013, 14:00

Не по теме:

Цитата Сообщение от paserge Посмотреть сообщение
в моей программе 23 вложенных цикла
Хочется взять и переписать с нуля.

1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
29.01.2013, 14:27
paserge,
C
1
2
if (a=0) {int b=1;
cout<<b<<",";}
Твой int b определен только между фигурными скобочками (в стеке). При выходе за них компилятор его уже не видит (стек сбрасывается).
0
-3 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 42
29.01.2013, 15:44  [ТС]
}[/CPP]

Добавлено через 58 минут
Цитата Сообщение от x404 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
int b,d=0;
for(int a=0; a<3;a++)
if (a=0) int b=1;
else if (a=1) b=2;
else if (a=2) b=3;
 
for(int c=0; c<3;c++)
if (c=0) int d=1;
else if (c=1) d=2;
else if (c=2) d=3;
 
cout<< b <<","<< d <<endl;
если до начала цикла определить переменные присвоив им (0) то в конце при выведение на консоль получим списки в котором куча нулей приблизительно так: 1,0,0,0,0,0,0,0,0,0 и в следующей строке 2,0,0,0,0,0,0,0,0,0,0,0,0

причина в том что переменные b ,d до цикла и b,d внутри цикла это разные переменные.
0
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
29.01.2013, 16:24
Я один заметил, что он присваивает в if?
0
1 / 1 / 1
Регистрация: 27.05.2011
Сообщений: 23
29.01.2013, 16:27
Уважаемый, скиньте полный код программы.
И скажите четко, чего вы хотите? что не работает итд.
0
 Аватар для Nikcharn
71 / 53 / 10
Регистрация: 31.07.2009
Сообщений: 149
29.01.2013, 16:51
Цитата Сообщение от Kgfq Посмотреть сообщение
Я один заметил, что он присваивает в if?
Нет, мне это тоже сразу на глаза бросилось, вообще это частая ошибка, а уж если допустил случайно фиг найдешь потом.
0
-3 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 42
29.01.2013, 17:06  [ТС]
это полный код
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream>;
using namespace std;
int main ()
{int x=1; 
 
int z[] = {28,29,30,31,32,33,39,40,41,42,43,44,45,46,51,52,53,54,55,56,57,
58,63,64,65,66,67,68,69,70,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,99,100,
101,102,103,104,105,112,113};
    for (int aa=0;aa<55;aa++) { int a1=z[aa], a2=z[aa]+11,a3=z[aa]+12,a4=z[aa]+13,a5=z[aa]+24;
    for (int bb=0;bb<55;bb++) { 
    for (int bbb=0;bbb<2;bbb++){
        if(bbb==0)int b1=z[bb], b2=z[bb]+1,b3=z[bb]+2,b4=z[bb]+3,b5=z[bb]+4;    
        else if (bbb==1) int b1=z[bb], b2=z[bb]+12,b3=z[bb]+24,b4=z[bb]+36,b5=z[bb]+48;
    for (int dd=0;dd<55;dd++) {
    for (int ddd=0;ddd<4;ddd++){
        if(ddd==0)  int d1=z[dd], d2=z[dd]+1,d3=z[dd]+2,d4=z[dd]+12,d5=z[dd]+14;
        else if (ddd==1) int d1=z[dd], d2=z[dd]+1,d3=z[dd]+12,d4=z[dd]+24,d5=z[dd]+25;
        else if (ddd==2) int d1=z[dd], d2=z[dd]+1,d3=z[dd]+13,d4=z[dd]+24,d5=z[dd]+25;
        else if (ddd==3)  int d1=z[dd], d2=z[dd]+2,d3=z[dd]+12,d4=z[dd]+13,d5=z[dd]+14;
    for (int ee=0;ee<55;ee++){ 
    for (int eee=0;eee<4;eee++){
        if(eee==0)  int e1=z[ee], e2=z[ee]+1,e3=z[ee]+2,e4=z[ee]+12,e5=z[ee]+24;
        else if (eee==1)  int e1=z[ee], e2=z[ee]+1,e3=z[ee]+2,e4=z[ee]+14,e5=z[ee]+26;      
        else if (eee==2) int e1=z[ee], e2=z[ee]+12,e3=z[ee]+22,e4=z[ee]+23,e5=z[ee]+24;
        else if (eee==3)  int e1=z[ee], e2=z[ee]+12,e3=z[ee]+24,e4=z[ee]+25,e5=z[ee]+26;
    for (int ff=0;ff<55;ff++) { 
    for (int fff=0;fff<4;fff++){
        if(fff==0)  int f1=z[ff], f2=z[ff]+1,f3=z[ff]+13,f4=z[ff]+14,f5=z[ff]+26; 
        else if (fff==1)  int f1=z[ff], f2=z[ff]+1,f3=z[ff]+11,f4=z[ff]+12,f5=z[ff]+23;
        else if (fff==2)  int f1=z[ff], f2=z[ff]+11,f3=z[ff]+12,f4=z[ff]+22,f5=z[ff]+23;
        else if (fff==3)  int f1=z[ff], f2=z[ff]+12,f3=z[ff]+13,f4=z[ff]+25,f5=z[ff]+26;
    for (int gg=0;gg<55;gg++) { 
    for (int ggg=0;ggg<4;ggg++){
        if(ggg==0)  int g1=z[gg], g2=z[gg]+1,g3=z[gg]+12,g4=z[gg]+23,g5=z[gg]+24;
        else if (ggg==1)  int g1=z[gg], g2=z[gg]+1,g3=z[gg]+13,g4=z[gg]+25,g5=z[gg]+26;
        else if (ggg==2)  int g1=z[gg], g2=z[gg]+10,g3=z[gg]+11,g4=z[gg]+12,g5=z[gg]+22;
        else if (ggg==3) int g1=z[gg], g2=z[gg]+12,g3=z[gg]+13,g4=z[gg]+14,g5=z[gg]+26;
    for (int hh=0;hh<55;hh++) { 
    for (int hhh=0;hhh<8;hhh++){
        if(hhh==0)  int h1=z[hh], h2=z[hh]+1,h3=z[hh]+2,h4=z[hh]+13,h5=z[hh]+25;
        else if (hhh==1) int h1=z[hh], h2=z[hh]+10,h3=z[hh]+11,h4=z[hh]+12,h5=z[hh]+24;
        else if (hhh==2)  int h1=z[hh], h2=z[hh]+12,h3=z[hh]+13,h4=z[hh]+14,h5=z[hh]+24;
        else if (hhh==3)  int h1=z[hh], h2=z[hh]+12,h3=z[hh]+23,h4=z[hh]+24,h5=z[hh]+25;
    for (int kk=0;kk<55;kk++) { 
    for (int kkk=0;kkk<8;kkk++){
        if(kkk==0)  int k1=z[kk], k2=z[kk]+1,k3=z[kk]+2,k4=z[kk]+12,k5=z[kk]+13;
        else if (kkk==1)  int k1=z[kk], k2=z[kk]+1,k3=z[kk]+2,k4=z[kk]+13,k5=z[kk]+14;
        else if (kkk==2)  int k1=z[kk], k2=z[kk]+1,k3=z[kk]+11,k4=z[kk]+12,k5=z[kk]+13;
        else if (kkk==3)  int k1=z[kk], k2=z[kk]+1,k3=z[kk]+12,k4=z[kk]+13,k5=z[kk]+14;
        else if (kkk==4)  int k1=z[kk], k2=z[kk]+1,k3=z[kk]+12,k4=z[kk]+13,k5=z[kk]+24;
        else if (kkk==5)  int k1=z[kk], k2=z[kk]+1,k3=z[kk]+12,k4=z[kk]+13,k5=z[kk]+25;
        else if (kkk==6)  int k1=z[kk], k2=z[kk]+11,k3=z[kk]+12,k4=z[kk]+23,k5=z[kk]+24; 
        else if (kkk==7)  int k1=z[kk], k2=z[kk]+12,k3=z[kk]+13,k4=z[kk]+24,k5=z[kk]+25;
    for (int mm=0;mm<55;mm++) { 
    for (int mmm=0;mmm<8;mmm++){
        if(mmm==0)  int m1=z[mm], m2=z[mm]+1,m3=z[mm]+11,m4=z[mm]+12,m5=z[mm]+24; 
        else if (mmm==1) int m1=z[mm], m2=z[mm]+1,m3=z[mm]+13,m4=z[mm]+14,m5=z[mm]+25;
        else if (mmm==2)  int m1=z[mm], m2=z[mm]+10,m3=z[mm]+11,m4=z[mm]+12,m5=z[mm]+23;
        else if (mmm==3)  int m1=z[mm], m2=z[mm]+11,m3=z[mm]+12,m4=z[mm]+13,m5=z[mm]+23;
        else if (mmm==4)  int m1=z[mm], m2=z[mm]+11,m3=z[mm]+12,m4=z[mm]+13,m5=z[mm]+25;
        else if (mmm==5)  int m1=z[mm], m2=z[mm]+11,m3=z[mm]+12,m4=z[mm]+24,m5=z[mm]+25;
        else if (mmm==6)  int m1=z[mm], m2=z[mm]+12,m3=z[mm]+13,m4=z[mm]+14,m5=z[mm]+25;
        else if (mmm==7)  int m1=z[mm], m2=z[mm]+12,m3=z[mm]+13,m4=z[mm]+23,m5=z[mm]+24;
    for (int nn=0;nn<55;nn++) { 
    for (int nnn=0;nnn<8;nnn++){
        if(nnn==0)  int n1=z[nn], n2=z[nn]+1,n3=z[nn]+2,n4=z[nn]+3,n5=z[nn]+12;
        else if (nnn==1)  int n1=z[nn], n2=z[nn]+1,n3=z[nn]+2,n4=z[nn]+3,n5=z[nn]+15;
        else if (nnn==2)  int n1=z[nn], n2=z[nn]+9,n3=z[nn]+10,n4=z[nn]+11,n5=z[nn]+12;
        else if (nnn==3)  int n1=z[nn], n2=z[nn]+12,n3=z[nn]+13,n4=z[nn]+14,n5=z[nn]+15;
        else if (nnn==4)  int n1=z[nn], n2=z[nn]+1,n3=z[nn]+12,n4=z[nn]+24,n5=z[nn]+36;
        else if (nnn==5)  int n1=z[nn], n2=z[nn]+1,n3=z[nn]+13,n4=z[nn]+25,n5=z[nn]+37;
        else if (nnn==6)  int n1=z[nn], n2=z[nn]+12,n3=z[nn]+24,n4=z[nn]+35,n5=z[nn]+36;
        else if (nnn==7)  int n1=z[nn], n2=z[nn]+12,n3=z[nn]+24,n4=z[nn]+36,n5=z[nn]+37;
    for (int pp=0;pp<55;pp++) { 
    for (int ppp=0;ppp<8;ppp++){
        if(ppp==0)  int p1=z[pp], p2=z[pp]+1,p3=z[pp]+2,p4=z[pp]+3,p5=z[pp]+13;
        else if (ppp==1)  int p1=z[pp], p2=z[pp]+1,p3=z[pp]+2,p4=z[pp]+3,p5=z[pp]+14;
        else if (ppp==2)  int p1=z[pp], p2=z[pp]+10,p3=z[pp]+11,p4=z[pp]+12,p5=z[pp]+13;
        else if (ppp==3)  int p1=z[pp], p2=z[pp]+11,p3=z[pp]+12,p4=z[pp]+13,p5=z[pp]+14;
        else if (ppp==4)  int p1=z[pp], p2=z[pp]+11,p3=z[pp]+12,p4=z[pp]+24,p5=z[pp]+36;
        else if (ppp==5)  int p1=z[pp], p2=z[pp]+12,p3=z[pp]+13,p4=z[pp]+24,p5=z[pp]+36;
        else if (ppp==6)  int p1=z[pp], p2=z[pp]+12,p3=z[pp]+23,p4=z[pp]+24,p5=z[pp]+36;
        else if (ppp==7)  int p1=z[pp], p2=z[pp]+12,p3=z[pp]+24,p4=z[pp]+25,p5=z[pp]+36;
    for (int rr=0;rr<55;rr++) { 
    for (int rrr=0;rrr<8;rrr++){
        if(rrr==0)  int r1=z[rr], r2=z[rr]+1,r3=z[rr]+2,r4=z[rr]+11,r5=z[rr]+12;
        else if (rrr==1)  int r1=z[rr], r2=z[rr]+1,r3=z[rr]+2,r4=z[rr]+14,r5=z[rr]+15;
        else if (rrr==2)  int r1=z[rr], r2=z[rr]+1,r3=z[rr]+10,r4=z[rr]+11,r5=z[rr]+12;
        else if (rrr==3)  int r1=z[rr], r2=z[rr]+1,r3=z[rr]+13,r4=z[rr]+14,r5=z[rr]+15;
        else if (rrr==4)  int r1=z[rr], r2=z[rr]+11,r3=z[rr]+12,r4=z[rr]+23,r5=z[rr]+35;
        else if (rrr==5)  int r1=z[rr], r2=z[rr]+12,r3=z[rr]+13,r4=z[rr]+25,r5=z[rr]+37;
        else if (rrr==6)  int r1=z[rr], r2=z[rr]+12,r3=z[rr]+23,r4=z[rr]+24,r5=z[rr]+35;
        else if (rrr==7)  int r1=z[rr], r2=z[rr]+12,r3=z[rr]+24,r4=z[rr]+25,r5=z[rr]+37;
        cout
        <<a1<<","<<a2<<","<<a3<<","<<a4<<","<<a5<<","<<b1<<","<<b2<<","<<b3<<","<<b4<<","<<b5<<","
        <<d1<<","<<d2<<","<<d3<<","<<d4<<","<<d5<<","<<e1<<","<<e2<<","<<e3<<","<<e4<<","<<e5<<","
        <<f1<<","<<f2<<","<<f3<<","<<f4<<","<<f5<<","<<g1<<","<<g2<<","<<g3<<","<<g4<<","<<g5<<","
        <<h1<<","<<h2<<","<<h3<<","<<h4<<","<<h5<<","<<k1<<","<<k2<<","<<k3<<","<<k4<<","<<k5<<","
        <<m1<<","<<m2<<","<<m3<<","<<m4<<","<<m5<<","<<n1<<","<<n2<<","<<n3<<","<<n4<<","<<n5<<","
        <<p1<<","<<p2<<","<<p3<<","<<p4<<","<<p5<<","<<r1<<","<<r2<<","<<r3<<","<<r4<<","<<r5<<","
        <<x++<<endl;}
        
    }}}}}}}}}}}}}}}}}}}}}}
 
    cin.get();
    }
Добавлено через 3 минуты
Дело в том что если использовать for то все будет работать но как без if организовать столь сложный цикл.

Добавлено через 8 минут
Цитата Сообщение от Kgfq Посмотреть сообщение
Я один заметил, что он присваивает в if?
то есть если определить переменные перед if внутри for то должно работать?
0
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
29.01.2013, 19:22
paserge, то есть если писать if(a = b) то это не "если а равно б то...", а "а присвоить б, если б не равно нулю то..."

Добавлено через 26 секунд
paserge, у вас не код, а треш. Советую переписать. С нуля.
0
-3 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 42
30.01.2013, 00:45  [ТС]
а ведь я реально ошибся когда поставил в if (==) надо ведь было (=)

Добавлено через 23 минуты
мозги кипят буду переписывать весь код по новой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2013, 00:45
Помогаю со студенческими работами здесь

необъявленные идентификаторы
в виндовс форме пишет ошибки необъевдленный идентификатор в private: void ShowDB()private: void ShowDB() { SqlCeEngine^ engine =...

Ошибки (необъявленные идентификаторы)
Что блин за ошибки? Че ему не нравится? #pragma once double xn,xk,xh,a,x,y,ymax,ymin,yt; int i,k,j; int m; #include...

Необъявленные идентификаторы ProxyHost и ProxyPort
Unit1.pas(46): Undeclared identifier: 'ProxyHost' Unit1.pas(47): Undeclared identifier: 'ProxyPort' unit Unit1; interface ...

При компилировании синтаксические ошибки и необъявленные идентификаторы
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; #include &lt;stdlib.h&gt; # define N 15; int main() { int a, i, j=0, i1=0,...

Циклы с условием, циклы с переменной, вложенные циклы
С условием 1. Ввести натуральное число N и вычислить сумму всех чисел фибоначчи меньших N. Предусмотреть защиту от ввода...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru