Ошибка:"Не удалось получить отладочный код" - C (СИ)
Формулировка задачи:
Здравствуйте, понадобилось сделать многоуровневую менюшку через switch, однако работа программы завершается сразу после ввода значения x, и выводится сообщение: "Не удалось получить отладочный код".
В чем может быть проблема?
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int x, y, z;
void level3()
{
do
{
printf("unput y:");
scanf("%d", y);
switch(y)
{
case 1: printf("y1 \n" );
break;
case 2: printf("y2 \n" );
break;
case 3: printf("y1 \n" );
break;
case 0:
y=0;
}
} while (y != 0);
}
void level2()
{
do
{
printf("unput z:");
scanf("%d", z);
switch(z)
{
case 1: printf("z1 \n" );
break;
case 2: printf("z2 \n" );
break;
case 3: level3();
break;
case 0:
z=0;
}
} while (z != 0);
}
void level1()
{
do
{
printf("unput x:");
scanf("%d", x);
switch(x)
{
case 1: printf("x1 \n" );
break;
case 2: level2();
break;
case 3: printf("x3 \n" );
break;
case 4: printf("x4 \n" );
break;
case 5: printf("x5 \n" );
break;
case 0:
x=0;
}
} while (x != 0);
}
int main()
{
level1();
return 0;
}Решение задачи: «Ошибка:"Не удалось получить отладочный код"»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
static void Level1();
static void Level2();
static void Level3();
static int ii = 0;
static int jj = 0;
static int kk = 0;
static void Level1()
{
do
{
printf("Input ii:");
scanf("%d",&ii);
switch (ii)
{
case 1:
{
printf("x1\n");
break;
}
case 2:
{
Level2();
break;
}
case 3:
{
printf("x3\n");
break;
}
case 4:
{
printf("x4\n");
break;
}
case 5:
{
printf("x5\n");
break;
}
}
}
while (ii);
}
static void Level2()
{
do
{
printf("Input jj:");
scanf("%d",&jj);
switch (jj)
{
case 1:
{
printf("x1\n");
break;
}
case 2:
{
printf("x3\n");
break;
}
case 3:
{
Level3();
break;
}
case 4:
{
printf("x4\n");
break;
}
case 5:
{
printf("x5\n");
break;
}
}
}
while (jj);
}
static void Level3()
{
do
{
printf("Input kk:");
scanf("%d",&kk);
switch (kk)
{
case 1:
{
printf("x1\n");
break;
}
case 2:
{
printf("x2\n");
break;
}
case 3:
{
printf("x3\n");
break;
}
case 4:
{
printf("x4\n");
break;
}
case 5:
{
printf("x5\n");
break;
}
}
}
while (kk);
}
int main(int argc,char** argv)
{
Level1();
return 0;
}
Объяснение кода листинга программы
- В коде используется язык программирования C.
- Код содержит три функции: Level1(), Level2() и Level3().
- В каждой из функций используется цикл do-while для повторного выполнения кода до тех пор, пока пользователь не введет ноль.
- В каждой функции есть оператор switch, который выполняет различные действия в зависимости от введенного пользователем числа.
- Каждое действие в операторе switch выводит на экран строку
x1,x2,x3,x4илиx5. - В функции main() вызывается функция Level1(), что приводит к выводу на экран первого набора вопросов.
- Возвращаемое значение функции main() равно 0, что означает успешное выполнение программы.