Whoops you have an infinite loop here

//This creates a LCV for the do loop below and sets it equal to 0.

int y = 0;

//This do loop generates the random number.
do
{
    //This generates a random time seed.
    srand(time(0));

    //This generates a random number between 1 and 99.
    ran = rand() % 100;

    //This while controls the do loop.
}while (y != 9);

y is initialized to 0 and you are looping while y!=9. And that is just the first error, there might be more.


Bug #2

int z = 1;
//This makes the program only create a random number the first pass through the loop.
if (z < 2)
{
    //This runs the random number generator function.
    return randomgen();

    //This sets the result of the function as the random number.
    randnum = randomgen();

    //This sets the random number to the current number.
    num = randnum;
}

After fixing infinite loop in randomgen(), You are immediately returning...

Answer from Tony Tannous on Stack Overflow
🌐
OnlineGDB
onlinegdb.com › faq
FAQ | GDB online Debugger
New Version of OnlineGDB is available.
Online C
OnlineGDB is online IDE with c compiler. Quick and easy way to compile c program online. It supports gcc compiler for c.
Online C++
OnlineGDB is online IDE with C++ compiler. Quick and easy way to compiler c++ program online. It supports g++ compiler for c++.
Java
OnlineGDB is online IDE with java compiler. Quick and easy way to run java program online.
Python
OnlineGDB is online IDE with python compiler. Quick and easy way to compile python program online. It supports python3.
🌐
Is It Down Right Now
isitdownrightnow.com › onlinegdb.com.html
Onlinegdb.com - Is Onlinegdb Down Right Now?
Onlinegdb.com has been rated 3.9 out of 5 points. A total of 43 votes cast and 0 users reviewed the website. ... Once added to your toolbar, this button will let you to check the status of a site from your browser's toolbar. Just drag the text your bookmarks bar : Down Right Now? Do not share my Personal Information.
Top answer
1 of 2
3

Whoops you have an infinite loop here

//This creates a LCV for the do loop below and sets it equal to 0.

int y = 0;

//This do loop generates the random number.
do
{
    //This generates a random time seed.
    srand(time(0));

    //This generates a random number between 1 and 99.
    ran = rand() % 100;

    //This while controls the do loop.
}while (y != 9);

y is initialized to 0 and you are looping while y!=9. And that is just the first error, there might be more.


Bug #2

int z = 1;
//This makes the program only create a random number the first pass through the loop.
if (z < 2)
{
    //This runs the random number generator function.
    return randomgen();

    //This sets the result of the function as the random number.
    randnum = randomgen();

    //This sets the random number to the current number.
    num = randnum;
}

After fixing infinite loop in randomgen(), You are immediately returning...

2 of 2
1

you have two problems in your code: the first one is that you have infinite loop in randomgen() function the condition in check against y - y != 9 but the value never update

int randomgen() 
{
    //This creates a variable to store the random number.
    int ran;

    //This creates a LCV for the do loop below and sets it equal to 0.
    int y = 0;

    //This do loop generates the random number.
    do
    {
        //This generates a random time seed.
        srand(time(0));

        //This generates a random number between 1 and 99.
        ran = rand() % 100;

        //This while controls the do loop.
    }while (y != 9);

    //This returns the random number for use in the rest of the program.
    return ran;
}

and the second one is even if you pass the loop in the function you exit main right away because the call to the function randomgen() is with return

if (z < 2)
{
    //This runs the random number generator function.
    return randomgen(); <-- **second problome**

    //This sets the result of the function as the random number.
    randnum = randomgen();

    //This sets the random number to the current number.
    num = randnum;
}
🌐
Reddit
reddit.com › r/c_programming › online gdb doesn't work as expected?
r/C_Programming on Reddit: Online GDB doesn't work as expected?
December 2, 2021 -

I am posting this both on r/Assembly_Language and here. I think the topic involves both fairly strongly.

So, I am going to do a presentation involving buffer overflows and I learned some basic Assembly because of that (more specifically the function prologue). I plan on learning Assembly for real and have installed SASM, but for now I just know basic C. I need help reading something.

In one of my sources (https://www.tenouk.com/Bufferoverflowc/Bufferoverflow4.html), this guy does disass in his vulnerable function in order to show that sub has allocated more space than he declared (4 vs 20).

This is his code:

#include <unistd.h>

 

void Test()

{

   char buff[4];

   printf("Some input: ");

   gets(buff);

   puts(buff);

}

 

int main(int argc, char *argv[ ])

{

   Test();

   return 0;

}

And this is the output of disass Test:

0x080483d0 <Test+0>:    push   %ebp

0x080483d1 <Test+1>:    mov    %esp, %ebp

0x080483d3 <Test+3>:    sub    $0x8, %esp

0x080483d6 <Test+6>:    sub    $0xc, %esp

Buff is 4 bytes and 20 bytes are "freed" on the stack. But when I try to do the same with a relatively more complicated function (I hope commentary is enough for the language gap):

#include <stdio.h>
#include <string.h>
#include <locale.h>     
#include <stdlib.h>        

void senha(){      
 char senha[10];           
    char senhareal[10]="dddddd";      
    int teste = 0;    
    char resposta[3]; 
    
    printf("\n\n\n\n-----------------------------SISTEMA NUCLEAR DA OTAN------------------------------------ \n\n\n\n");     
    
    
    printf("DIGITE SUA SENHA: ");
    gets(senha);


    if(0 == strncmp(senha, senhareal, 20))
    {
         printf ("\nSenha correta! \n");
         teste = 1;    
    }
    
    
    else
    {
        printf ("\nSENHA INCORRETA! \n");
    }


    if(teste)
    {
        printf ("\nO usuário agora controla a instalação! Deseja destruir o Brasil? \n");     
        gets(resposta); 
    }
            }

int main(){               
    system("color 03");
	setlocale(LC_ALL, "Portuguese"); 
    senha();  

    return 0;
}

I get this:

0x0000555555555209 <+0>: endbr64
0x000055555555520d <+4>: push %rbp
0x000055555555520e <+5>: mov %rsp,%rbp
0x0000555555555211 <+8>: sub $0x30,%rsp
0x0000555555555215 <+12>: mov %fs:0x28,%rax
0x000055555555521e <+21>: mov %rax,-0x8(%rbp)

No matter my input. So why does Online GDB consistently subtract 48 bytes? What are the instructions following sub and do they apply at all to what I am trying to do? Is it possible to know what's going on in that specific platform? Finally, am I unable to replicate what this person did with my code?

I tested the code of my source in Online GDB as well. It consistently subtracts 16 bytes.

🌐
OnlineGDB
onlinegdb.com
GDB online Debugger | Compiler - Code, Compile, Run, Debug online C, C++
Online GDB is online compiler and debugger for C/C++. You can compile, run and debug code with gdb online. Using gcc/g++ as compiler and gdb as debugger. Currently C and C++ languages are supported.
🌐
OnlineGDB
question.onlinegdb.com › 10202 › problem-forming-new-files-and-writing-on-them
Problem forming new files and writing on them - OnlineGDB Q&A
Hello! So I'm using this online compiler for my easy class problems in c++. Now I'm solving one, ... and it worked as a charm for the past 2 years.
Find elsewhere
🌐
OnlineGDB
question.onlinegdb.com › 1577 › does-code-work-fine-onlinegdb-but-work-when-compiled-with-gcc
Why does my C code work fine in onlineGDB but not work when compiled with gcc? - OnlineGDB Q&A
There are no compiler errors, but the program does not work despite being the same exact code. It's ... with >gcc -Wall -Wextra -Werror Thanks!
🌐
OnlineGDB
question.onlinegdb.com › 9748 › why-my-code-is-not-working-plz-help
Why my code is not working plz help !!!! - OnlineGDB Q&A
As you have used to scanf functions for num1 and num2, the third scanf function is not read because of '\n' left by the previous scanf functions · To make your code work just use scanf(" %c",&ch); instead of this scanf("%c",&ch);
🌐
OnlineGDB
question.onlinegdb.com › 14516 › why-wont-it-stop
Why wont it stop - OnlineGDB Q&A
Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and receive answers from other members of the community.
🌐
OnlineGDB
onlinegdb.com › login
Login | GDB online Debugger
If your program is reading input from standard input and you forgot to provide input via stdin. Your program contains infinite loop, which may never break. Your program contains infinite recursive function calls. May be your program is trying to process large data and it takes much time to ...
🌐
SaaSHub
saashub.com › status pages › development › design playground
OnlineGDB Down? OnlineGDB status and issues.
There are no reported issues during the last 24h. Use the 'Report an Issue' button to report any issues you may have with the service. Check out our list of OnlineGDB alternatives. 🇨🇦 A user from Canada reported Website not opening as a problem with OnlineGDB about 7 days ago.
🌐
OnlineGDB
question.onlinegdb.com › 8457 › why-doesnt-it-work-correctly
Why doesn't it work correctly? - OnlineGDB Q&A
Hi there! I was set to find minimum value of the function (y) wlile argument (x) is 0.3
🌐
Stack Overflow
stackoverflow.com › questions › 68036729 › code-not-working-in-vs-code-but-works-in-onlinegdb
c++ - Code Not working in VS Code but works in OnlineGDB - Stack Overflow
But the attached code doesn't show output in VS Code while it shows output in online c++ compiler like https://www.onlinegdb.com/online_c++_compiler · Can anyone help me to resolve this issue. #include<iostream> using namespace std; void primeSieve(){//Genearate array containing prime number int number; cin>>number; int p[1000] = {0}; //1=Prime;0=Non-Prime //Mark All Odd number prime for(int i=3;i<=1000;i+=2){ p[i]=1; } //Sieve for(int i=3;i<=1000;i+=2){//jumping over odd numbers //if current number is not marked(it is prime) if(p[i]==1){ //Mark Multiples as 0 for(int j=2*i;j<=1000;j=j+i){ p[j]=0; } } } //Special Case p[2]=1; p[1]=p[0]=0; for(int x=0;x<=number;x++){ if(p[x]!=0){ cout<<x<<" "; } } } int main(){ primeSieve(); return 0; }
🌐
Sololearn
sololearn.com › en › Discuss › 2280730 › if-i-execute-a-code-in-online-gdb-c-compiler-it-is-not-printing-100-tyms-why
If i execute a code in online gdb c++ compiler it is not printing 100 tyms why??? | Sololearn: Learn to code for FREE!
Yes , there is a limit that , code written in one platform can't be used on other , not always but sometimes, if you go there and write same program there it will run without any issue ..... I also had same issue , when you change platform it creates issue https://www.sololearn.com/discuss/2265383/?ref=app · 7th May 2020, 12:57 PM · Raj Kalash Tiwari · 0 · I just ran program https://www.onlinegdb.com/online_c++_compiler And it works ·
🌐
OnlineGDB
onlinegdb.com › contact
Contact Us | GDB online Debugger
If your program is reading input from standard input and you forgot to provide input via stdin. Your program contains infinite loop, which may never break. Your program contains infinite recursive function calls. May be your program is trying to process large data and it takes much time to ...
🌐
OnlineGDB
question.onlinegdb.com › 13693 › why-dont-files-work-c
Why don't files work (c++)? - OnlineGDB Q&A
The code works fine, you just have to have file.in file in your project (alongside the main.cpp) that has two numbers separated by white space
🌐
OnlineGDB
question.onlinegdb.com › 17511 › why-isnt-my-code-working
Why Isn't my Code Working? - OnlineGDB Q&A
Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and receive answers from other members of the community.