C 我调用函数扫描某些内容后,程序不继续?有人能查出是什么问题吗?(很长,但请帮忙!)

C 我调用函数扫描某些内容后,程序不继续?有人能查出是什么问题吗?(很长,但请帮忙!),c,C,所以第一部分是我从用户那里得到一个输入,在这个例子中是'1'作为一个字符值,它是从另一个函数接收的 printf ("\nPlease enter 1, 2, 3 or q: "); option = validateoption(); 在ValidateOptions函数中: int validateoption () { // VALIDATE OPTION FOR FIRST MENU INPUT int keeptrying = 1, rc; char after, i;

所以第一部分是我从用户那里得到一个输入,在这个例子中是'1'作为一个字符值,它是从另一个函数接收的

printf ("\nPlease enter 1, 2, 3 or q: ");

    option = validateoption();
在ValidateOptions函数中:

int validateoption () {  // VALIDATE OPTION FOR FIRST MENU INPUT

int keeptrying = 1, rc;
char after, i;

do
{
    rc = scanf ("%c%c", &i, &after);
    if (i == 'q')
    {
        break;
    }
        else if (rc == 0)
        {
            printf (" **Invalid input try again: ");
            clear();
        }
            else if (after != '\n')
            {
                printf (" **Trailing characters try again: ");
                clear();
            }
                else if (i < '1' || i > '3')
                {
                    printf (" **Invalid input try again: ");
                }
                    else
                    {
                        keeptrying = 0;
                    }

} while (keeptrying == 1);

return i;

}
int validateaccount() {  // VALIDATE INPUT FOR ACCOUNT # IN TRANSACTION FUNCTION

int keeptrying = 1, rc;
long i;
char after;

do
{
    rc = scanf ("%ld%c", &i, &after);

    if (rc == 0)
    {
        printf (" **Invalid input try again: ");
        clear();
    }
        else if (after != '\n')
        {
            printf (" **Trailing characters try again: ");
            clear();
        }
            else if (i < 1000 || i > 3999)
            {
                printf (" **Invalid input try again: ");
            }
                else
                {
                    keeptrying = 0;
                }

} while (keeptrying == 1);

return i;

}
这就是问题所在。在事务函数中,它有一个for循环

for (i = 0; i < MAX; i++)
{
    printf ("Enter an account number (between 1000 and 3999): ");
    accounts[i] = validateaccount();

    debcred[i] = validatedebcred();

    amount[i] = validateamount();

    totalinput++;
}
(i=0;i { printf(“输入帐号(介于1000和3999之间):”; 账户[i]=validateaccount(); debcred[i]=validatedebcred(); 金额[i]=validateamount(); totalinput++; } 它调用validateaccount函数以获得有效的输入。但在这个功能中:

int validateoption () {  // VALIDATE OPTION FOR FIRST MENU INPUT

int keeptrying = 1, rc;
char after, i;

do
{
    rc = scanf ("%c%c", &i, &after);
    if (i == 'q')
    {
        break;
    }
        else if (rc == 0)
        {
            printf (" **Invalid input try again: ");
            clear();
        }
            else if (after != '\n')
            {
                printf (" **Trailing characters try again: ");
                clear();
            }
                else if (i < '1' || i > '3')
                {
                    printf (" **Invalid input try again: ");
                }
                    else
                    {
                        keeptrying = 0;
                    }

} while (keeptrying == 1);

return i;

}
int validateaccount() {  // VALIDATE INPUT FOR ACCOUNT # IN TRANSACTION FUNCTION

int keeptrying = 1, rc;
long i;
char after;

do
{
    rc = scanf ("%ld%c", &i, &after);

    if (rc == 0)
    {
        printf (" **Invalid input try again: ");
        clear();
    }
        else if (after != '\n')
        {
            printf (" **Trailing characters try again: ");
            clear();
        }
            else if (i < 1000 || i > 3999)
            {
                printf (" **Invalid input try again: ");
            }
                else
                {
                    keeptrying = 0;
                }

} while (keeptrying == 1);

return i;

}
int validateaccount(){//验证事务函数中帐户#的输入
int keeptrying=1,rc;
龙我;
炭后;
做
{
rc=scanf(“%ld%c”、&i、&after);
如果(rc==0)
{
printf(“**无效输入重试:”);
清除();
}
如果(在!='\n'之后)
{
printf(“**尾随字符重试:”);
清除();
}
否则如果(i<1000 | | i>3999)
{
printf(“**无效输入重试:”);
}
其他的
{
keeptrying=0;
}
}while(keeptrying==1);
返回i;
}

我输入一个输入,然后程序停止运行!我想输入1000,然后它就什么也不做了。它并没有结束,只是什么也不做,然后我会输入更多的数字,这将成为一个无效的输入!我不知道发生了什么有人能看出问题吗?

我是个白痴。它在最终输入后没有显示任何内容,因为没有printf语句再次向用户显示要输入的内容

文字计算机如何遵循方向令人恼火。