I already learned that continue or break works only while being inside the loop.
My question is that is there any way to outsmart this or is there any way besides continue to make it work...
In the code I'm talking about the function q_what_to_do_next, how to make this outside function do the continue work?
Code:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <limits.h>
#include <string.h>
#include <math.h>
int q_what_to_do_next();
int main()
{
int a = INT_MAX;
while (1)
{
if (a != INT_MAX)
{
//nuline programa, jei nori baigti programa
if (a == 0)
{
system("cls");
char p;
printf("Ar tikrai norite iseiti is programos?\n");
printf("Jei taip, spauskite y\n");
printf("Jei ne, spauskite n\n");
scanf(" %c", &p);
if(p != 'y' && p!='n')
{
system("cls");
int i;
printf("Kadangi pasirinkote ne y arba n busite automatiskai ismestas is programos uz 10 sekundziu\n");
Sleep(5000);
for (i = 1; i <= 10; i++)
{
printf("%d\n", i);
Sleep(1000);
}
break;
}
if (p == 'y')
break;
else if(p =='n')
{
a = INT_MAX;
system("cls");
continue;
}
}
//pirmoji programa
else if (a == 1)
{
system("cls");
int binary;
int bp = 0; //bp - isaugojimas pradiniu duomenu
int decimal = 0;
int k = 0; //pagalbinis skaiciuojant desimtaini
int m = 1; //kitas pagalbinis, kuris dides
printf("***********************************************************************************\n");
printf("** Iveskite savo norima dvejetaini koda, kuri noretumete paversti desimtainiu: **\n");
printf("***********************************************************************************\n");
while (scanf(" %9d", &binary) != 1 || getchar() != '\n')
{
printf("Iveskite dvejetaini skaiciu!\n");
while (getchar() != '\n')
;
}
bp = binary;
while (bp > 0)
{
k = bp % 10;
decimal = decimal + k * m;
bp = bp / 10;
m = m * 2;
}
system("cls");
//pagrindas 40 H raidziu
double sk = 0, sk1 = 0;
sk = (decimal == 0) ? 1 : log10(decimal) + 1;
sk1 = (bp == 0) ? 1 : log10(bp) + 1;
double n = sk + 5;
printf("HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH");
while (n > 0)
{
printf("H");
n--;
}
printf("\n");
printf("HH Jusu pasirinktas dvejetainis kodas: %d", binary);
n = sk + 5;
while (n > 0)
{
printf(" ");
n--;
}
printf("HH\n");
n = sk + 5;
printf("HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH");
while (n > 0)
{
printf("H");
n--;
}
printf("\n");
printf("HH Gautas desimtainis kodas, konvertutoas is dvejetainio: %d", decimal);
printf(" HH\n");
n = sk + 5;
printf("HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH");
while (n > 0)
{
printf("H");
n--;
}
printf("\n");
a = q_what_to_do_next();
}
else
{
system("cls");
int b = 0;
printf("Nera tokios programos\n");
printf("Paspauskite 1, kad galetumete is naujo pasirinkti\n");
while (scanf(" %d", &b) != 1 || getchar() != '\n' && b!=1)
{
printf("NU siupele tu siupele!\n");
printf("VIENETAAA, ne kazka kito\n");
while (getchar() != '\n')
;
}
if (b == 1)
{
system("cls");
a = INT_MAX;
continue;
}
}
}
else
{
printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n");
printf("| Programos veiksmu pasirinkimas: |\n");
printf("|irasykite skaiciu, kurios programos dalies norite|\n");
printf("///////////////////////////////////////////////////\n");
printf("|1 - is dvejetaines i desimtaine |\n");
printf("|2 - is dvejetaines i sesioliktaine |\n");
printf("|3 - is desimtaines i dvejetaine |\n");
printf("|4 - is desimtaines i sesioliktaine |\n");
printf("|5 - is sesioliktaines i dvejetaine |\n");
printf("|6 - is desioliktaines i desimtaine |\n");
printf("|0 - iseiti is programos |\n");
printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n");
while (scanf(" %d", &a) != 1 || getchar() != '\n')
{
printf("LOPETA TU!\n");
printf("TIK VIENA SKAICIU, BE JOKIO TARPO, BE RAIDZIU!\n");
printf("Nebuk kaip Grazulis ble...\n");
while (getchar() != '\n')
;
}
continue;
}
system("cls"); //clear screen
}
exit(0);
return 0;
}
int q_what_to_do_next()
{
int p;
printf("Jie norite pakartoti programa spauskite 1\n");
printf("Jei norite grizti i programu pasirinkimo langa spauskite 2\n");
printf("Jei norite baigti programa spauskite 3\n");
while (scanf(" %d", &p) != 1 || getchar() != '\n')
{
printf("Iveskite skaiciu is pasirinkimu, ne kazka kito\n");
while (getchar() != '\n')
;
}
if (p == 1)
{
//a = 1;
return 1;
continue;
}
if (p == 2)
{
system("cls");
//a = INT_MAX;
return INT_MAX;
continue;
}
else
{
system("cls");
//a = 0;
return 0;
continue;
}
}