求解,怎么把这个大循环写好呢

流程如图。自己也试着写了一些,但是问题不少,求指点。我写的代码如下:
int DataInput()
{
int i;
char a;
start:printf("输入一个字符:\n");
scanf("%c",&a);
for(i=1;i<=Nums;i++)
{
if(a>=48&&a<=57)
{
goto step1;
}
else
{
goto step4;
}
step1:intArray[Nums];
printf("输入一个字符:\n");
scanf("%c",&a);
goto step2;
step2:if(a>=48&&a<=57)
{
goto step1;
}
else
{
goto step3;
}
step3:int queue(char intArray[],char N1[]);goto start;
step4:if((a>=0xB0A1&&a<=0xD7FE)||(a>=0xA1A1&&a<=0xA3FE)||(a>=0xA8A1&&a<=0xA8C0))
{
int queue1(char intArray[],char N2[]);goto start;
}
else
{
goto step5;
}

step5:if(a>=0xD8A1&&a<=0xF7FE)
{
int queue1(char intArray[],char N3[]);goto start;
}
else
{
goto step6;
}
step6:if(a>=0x8140&&a<=0xFE7E||a>=0x8180&&a<=0xFEFE)
{
int queue1(char intArray[],char N4[]);goto start;
}
else
{
goto step7;
}
step7:if(a>=0x81308130&&a<=0xFE39FE39)
{
int queue1(char intArray[],char N5[]);goto start;
}
else
{
goto step8;
}
step8:printf("报错:不合法数据\n");
}
return 0;
}图片

 char a;
    for (int i = 0;i < 10;i++)
    {
        scanf("%c",&a);
        if (a >= 48 && a <= 57)
        {
            //queue
        }
        else if((a >= 0xB0A1 && a <= 0xD7FE)||(a>=0xA1A1&&a<=0xA3FE)||(a>=0xA8A1&&a<=0xA8C0))
        {
            //queue1
        }
        else if(a>=0xD8A1&&a<=0xF7FE)
        {
             //queue2
        }
        else if(a>=0x8140&&a<=0xFE7E||a>=0x8180&&a<=0xFEFE)
        {
            //queue3
        }
        else if(a>=0x81308130&&a<=0xFE39FE39)
        {
            //queue4
        }
    }