为什么这个代码我的符号打印不出来呢

char cop();
int calculate(int x,char op, int y);
int number();
int main()
{
int a,b,ans,i,t;
char opchar;
int flag=0;
srand(time(NULL));
for(i=0;i<10;i++)
{
a=number();
b=number();
printf("%d %c %d=?",a,opchar,b);
scanf("%d",&ans);
if(ans==calculate(a,opchar,b))
{
printf("Right!\n");
t++;
flag=1;
}
else
{
printf("Wrong!\n");

    } 
}
    printf("总分数为:%d",t*10);
    printf("正确率为:%d%%\n",t*10);
return 0;

}
int calculate(int x,char op,int y)
{
switch(op)
{
case '+': return x+y;
case '-': return x-y;
case '*': return x*y;
case '/': return x/y;
default:printf("operator error!\n");return 0;
}
}
int number()
{
return rand()%10+1;
}
char cop()
{
int op;
op=rand()%4+1;
switch(op)
{
case 1: return'+';
case 2: return'-';
case 3: return'*';
case 4: return'/';
}
return 0;
}

char opchar;
这里opchar没有初始化
可以写
char opchar = cop();

问题解决的话,请点下采纳