某小学口算比赛c语言

我正在写十以内加减法的挑战模式,不知道该怎么写,要求每5题为一次挑战,每次挑战需统计成绩,可以循环挑战,直到用户退出为止。退出时显示本关卡挑战的次数及排名前5次的成绩(不足5次,显示所有成绩),成绩要求按降序排序显示。

#include 
#include 
#include 
#include 
#include 
double one(void);
//double two(void);
//double three(void);
char mygetchar(void);
int panduan(void);

int main(void)
{
  int i;
  double pa;
  printf("选择难度等级:\n");
  printf("1.十以内加减法\n");
  printf("2.两位数加一位数不进位,两位数减一位数不借位\n");
  printf("3.一百以内加减法\n");
  printf("4.退出系统\n");
  while (i = mygetchar()) 
    {
        if (i > '0' && i < '5')
          break;
         printf("输入错误!请重新输入:");
    }
    switch (i) 
    {
      case '1' :
      system("cls");
      pa = one();
      break;
    //case '2' :
      //system("cls");
      //pa = two();
      //break;
    //case '3' :
      //system("cls");
      //pa = three();
      //break;
      case '4' :
      break;
    }
}

double one(void)
{
  int a[10], b[10],i, m=0, n=0, x=0;
  int t=0;
  double p;
  char ch,ch2;
  char s;
  int k;
  char cal[2]={'+','-'}; 
  srand((unsigned)time(NULL));
    printf("请选择训练模式\n");
    printf("a.练习模式\n");
    printf("b.考试模式\n");
    printf("c.挑战模式\n");
    ch = mygetchar();
    while(ch<'a'||ch>'c') 
      {
        printf("输入错误!请重新输入:");
         ch = mygetchar();
        }
        system("cls");
    if(ch=='a')
      {
        for(i=0;i<10;++i)
           {
               a[i]=rand()%11;
               b[i]=rand()%11;
               s=cal[rand()%2];
               switch(s)
              {
               case'+':k=a[i]+b[i];break;
               case'-':if(a[i]-b[i]<0)
                {
                   a[i]=t;
                   a[i]=b[i];
                   b[i]=t;
                }
                   k=a[i]-b[i]; 
                   break;
               }
               printf("%d%c%d=",a[i],s,b[i]);
               scanf("%d",&x);
               while(x!=k)
               {
                 printf("答案错误 请重新输入:");
                 scanf("%d",&x);
               }
                continue;
            }
          } 
    if(ch=='b')
      {
        int num;
        int num1=0;
        printf("请输入题目数量:");
        scanf("%d",&num);
        for(i=0;i11;
              b[i]=rand()%11;
              s=cal[rand()%2];
              switch(s)
              {
                case'+':k=a[i]+b[i];break;
                case'-':if(a[i]-b[i]<0)
                {
                   a[i]=t;
                   a[i]=b[i];
                   b[i]=t;
                }
                   k=a[i]-b[i]; 
                   break;
                }
               printf("%d%c%d=",a[i],s,b[i]);
               scanf("%d",&x);
               if(x==k)
                 {
                    num1++;
                 }
             }
           p = (float)num1 / num;
          printf("答对%d题\n",num1);
          printf("您的正确率为:%.2lf%%\n",p*100);
      }        
    if(ch=='c')
      {
        int num=0,num1=0,num2=0,t=0,j=0;
        char str[j];
        do{
           num1=0;
           for(i=0;i<5;++i)
           {
             a[i]=rand()%11;
             b[i]=rand()%11;
             s=cal[rand()%2];
             switch(s)
             {
               case'+':k=a[i]+b[i];break;
               case'-':if(a[i]-b[i]<0)
               {
                 a[i]=t;
                 a[i]=b[i];
                 b[i]=t;
               }
                 k=a[i]-b[i]; 
                 break;
              }
                 printf("%d%c%d=",a[i],s,b[i]);
                 scanf("%d",&x);
              if(x==k)
               {
                 num1++;
               }         
            }     
          p= (float)num1/5;
          printf("答对%d题\n",num1);
          printf("您的正确率为:%.2lf%%\n", p*100);
          int k=0;
          str[k]=num1;
          k++;
          printf("\n是否继续?(Y/N)\n");
            while (getchar() != '\n')
            continue;
          ch2 = mygetchar();
          num2++;
          }while(ch2=='Y'||ch2=='y');
          printf("本关卡挑战的次数为%d次\n",num2);
          if(num2<5)
          {
              for(j=0;jchar mygetchar(void) 
{
  char ch;
  ch= getchar();
  while (getchar()!= '\n')
    continue;
  return ch;
}