So my code does the following:
- Ask what's the option
- If option is 1: Scan some numbers
- If option is 2: Print those numbers
- After each option, ask if user wanted to continue choosing (Y/N)
This is my main code
while(yesnocheck==1)
{
    printf("What's your option?: ");
    scanf("%d",&b);
    switch(b){
        case 1:
            printf("How many numbers?: ");
            scanf(" %d",&n);
            a=(struct sv*)malloc(n*sizeof(struct sv));
            for(int i=0;i<n;i++)
                scanf("%d",&((a+i)->num));
            break;
        case 2:
            for(int i=0;i<n;i++)
                printf("%d\n",(a+i)->num);
            break;
    }
    yesnocheck==yesnochecker();
}
And this is the yesnochecker function:
int yesnochecker()
{
    char yesorno;
    printf("Do you want to continue? (Y/N)");
        while(scanf("%s",&yesorno))
    {
        if(yesorno=='Y')
            return 1;
        if(yesorno='N')
            return 0;   
        printf("*Wrong input. Please reenter (Y/N): ");
    }
}
So on dev C++, my code won't run correctly. After it's done option 1, when I enter "Y" then choose option 2, case 2 will display some weird numbers. However it works well on online C compilers.
And then, when I change the char yesorno in yesnochecker() function to char yesorno[2] and treat it as a string, the code does work.
Can someone shed some light?
 
     
    