> Maybe our IDEs are different,
IDEs are irrelevant if the code is correct.

Code:
#include <limits.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

#define MAX_TESTS 10
#define MAXQUESTION 100

bool myread(const char *format, void *address)
{
  char buffer[1024];
  fgets(buffer, sizeof buffer, stdin);
  return sscanf(buffer, format, address) == 1;
}

struct struc {
  int a;
  int b;
  int c;
  int add;
  int grade;
};

struct struc ques_db[MAXQUESTION];  //database to hold all the previous questions

int ques_db_count = 0;          //count of question currently in the database

//function to traverse the question in database and
// see if the current question has already been asked
int find_in_db(struct struc *t)
{
  int i;
  for (i = 0; i < ques_db_count; i++) {
// check to see if the question in database is same as
// the current generated one. It compares value of a, b
// add (i.e. result) if all of them are same then the
// question was same as the current one
    if (ques_db[i].a == t->a && ques_db[i].b == t->b && ques_db[i].add == t->add)
      return -1;
  }

  return 0;
}

int add_in_db(struct struc *t)  //function to add the currently generated question to database
{
//first check if the question is already there in the db
  if (-1 == find_in_db(t))
    return -1;
  else {                        // if not there then add to the db for future reference
    ques_db[ques_db_count++] = *t;
    return 0;
  }
}

int sj(int n)
{
  int t;
  t = rand() % n;
  return t;
}

void ctm_i(struct struc *t)
{
  do {
    t->a = sj(101);
    t->c = sj(4);
    if (t->c == 1) {
      t->b = sj(101 - (t->a));
      t->add = (t->a) + (t->b);
    } else {
      t->b = sj((t->a) + 1);
      t->add = (t->a) - (t->b);
    }
    t->grade = 0;
  }
  while (add_in_db(t) != 0);    //process repeats if question is not added due to repetition
}


void print_positive_message()
{
  char positive_words[8][50] = {
    "\n Bingo!",
    "\n Great job!",
    "\n Very good!",
    "\n Brilliant!",
    "\n That's correct!",
    "\n You got it!",
    "\n Bravo!",
    "\n Awesome!"
  };

  srand((unsigned) time(NULL));
  // Replace your print statement here
  printf("%s", positive_words[rand() % 8]);
}

void tcm_i(struct struc *t, int n)
{
  int ad;
  printf(" Question %d\n\n", n + 1);
  printf(" You have 3 attempts for this question\n\n");
  if (t->c == 1)
    printf(" %d+%d= ", t->a, t->b);
  else
    printf(" %d-%d= ", t->a, t->b);

  myread("%d", &ad);
  if (ad == t->add)
  {
    t->grade = 10;
    print_positive_message();
    printf(" You earned 10 marks\n\n");
  }
  else {
    printf("\n Incorrect, you have 2 attempts remaining\n\n");
    printf(" ");
    myread("%d", &ad);

    if (ad == t->add)
    {
      t->grade = 7;
      print_positive_message();
      printf(" You earned 7 marks\n\n");
    }
    else {
      printf("\n Incorrect, you have 1 attempt remaining\n\n");
      printf(" ");
      myread("%d", &ad);

      if (ad == t->add)
      {
        t->grade = 5;
        print_positive_message();
        printf(" You earned 5 marks\n\n");
      }
      else {
        t->grade = 0;
        printf("\n Failure, 0 mark\n\n");
        printf("\n The correct answer is %d\n\n", t->add);
      }
    }
  }
}

void display_instructions()
{
  // function created only to display instructions of quiz
  printf(" ***********************************************************************" "************\n");

  printf(" ......................................................................." "............\n");

  printf(" ************************************* Welcome! ************************************\n");

  printf(" ......................This program is for students Grades 1-2......................\n");

  printf("\n Program description:\n");

  printf(" (1)10 questions are randomly generated, each question is worth 10 points.\n");
  printf(" (2)Only addition and subtraction within 100 is allowed.\n"
         "    The sum and the difference of the two numbers do not exceed the range of 0-100.\n"
         "    Negative numbers are not included.\n");
  printf(" (3)There are 3 attempts for each question.;\n");
  printf(" (4)For each question:\n"
         "        1. 10 points will be awarded for the first successful attempt.\n"
         "        2. 7 points for the second attempt.\n"
         "        3. 5 points for the third attempt.\n");
  printf(" (5)At the end of the program enter:\n"
         "        'P' to start a new game;\n"
         "        'S' to show the results;\n"
         "        'Q' to quit.\n\n");
}

void quiz(char name[])
{
  // function created to enclose quiz functionality apart from instructions
  int rounds = 0;
  int highest = 0;
  int lowest = INT_MAX;
  float allScore = 0;
  float avg = 0;

  int i, j, g = 0;
  //char x;
  struct struc test[MAX_TESTS];

  srand((unsigned) time(NULL));
  for (;;) {
    for (i = 0; i < MAX_TESTS; i++) // generate all questions
    {
      ctm_i(&test[i]);
      for (j = 0; j < i; j++)
        if (test[i].a == test[j].a && test[i].b == test[j].b && test[i].c == test[j].c)
          //if question is already present
          ctm_i(&test[i]);      //then re-generate
    }

    //int ig = getchar();
    char x;
    printf("\n Are you ready? Press Enter key to continue. ");
    myread("%c",&x);

    // Take quiz
    for (i = 0; i < MAX_TESTS; i++)
      tcm_i(&test[i], i);

    printf(" End\n\n");

    bool done = false;
    bool unsure = true;
    bool showS = true;

    while (unsure) {
      unsure = false;
      puts("\n");
      if (showS) {
        puts(" Enter 'S' to show results");
      }
      puts(" Enter 'P' to play another round");
      //puts(" Enter 'Q' to quit");
      puts(" Enter 'R' to return to main menu");
      char choice;
      printf(" ");
      myread("%c", &choice);

      if (choice == 'r' || choice == 'R') {
        done = true;
      } else if (choice == 'S' || choice == 's') {
        showS = false;
        // calculate total score for current round
        g = 0;
        for (i = 0; i < MAX_TESTS; i++) {
          g += test[i].grade;   //add score of each question
        }
        allScore += g;          //add current round's score to total
        avg = allScore / rounds;  //average of all rounds

        if (g > highest) {
          highest = g;
        }

        if (g < lowest) {
          lowest = g;
        }

        if (rounds == 1) {
          printf(" Final score: %d/100\n", g);  //display round score
          printf(" ****** Player: %s ******\n", name);
        } else {
          //puts("Whoops! Looks like highest/lowest have not been adjusted!");
          printf(" Round %d score: %d/100\n", rounds, g); //display round score
          printf(" Highest score: %d/100\n", highest);
          printf(" Lowest score: %d/100\n", lowest);
          printf(" Average score: %f\n", avg);
          printf(" ****** Player: %s ******\n", name);
        }
        unsure = true;
        //getchar();
      } else if (choice == 'P' || choice == 'p') {
        g = 0;
        for (i = 0; i < MAX_TESTS; i++) {
          g += test[i].grade;   //add score of each question
        }
        allScore += g;          //add current round's score to total
        if (g > highest) {
          highest = g;
        }

        if (g < lowest) {
          lowest = g;
        }

      } else {
        puts(" Invalid input!");
        unsure = true;
      }
    }
    if (done)
      break;
  }
}

     // importing maincode.c file to allow to call quiz() an display_instructions()

char choiceY(char option[30])
{
  char choice;
  do {
    myread(" %c", &choice);        //take user input
    if (choice == 'y' || choice == 'Y') {
      return 'y';
    }
    if (choice == 'n' || choice == 'N') {
      if (strcmp(option, "Quit") == 0)  //if the input is for quit check wheather entered No
      {
        return 'n';
      }
      // what happens here?
    }
    // Not Y or N
    printf(" Invalid input! Please enter 'Y' to Quit or 'N' to return to the main menu: \n");
  } while ( 1 );
  return '0';
}

int main()
{
  int i1 = 1;
  char name[25];                // ig;
  printf(" Enter your name: "); // Prompting the user to enter his/her name
  myread("%[^\n]%*c", name);
  printf("\n Welcome %s\n", name);
  printf("\n Press Enter key to continue.");
  char enter = 0;
  myread("%c", &enter);

  printf("\n");
  while (i1 != 0) {
    printf(" *                       Main Menu of Maths Quiz                            *\n");
    printf(" * 1.Enter Quiz                                                             *\n");
    printf(" * 2.Instructions                                                           *\n");
    printf(" * 3.Quit                                                                   *\n");
    printf(" ****************************************************************************\n");
    printf(" Please choose one from 1-3:\n");
    printf(" ");
    if( myread("%d", &i1) ) {
      switch (i1) {
      case 1:
        printf("\n Enter Quiz:\n");
        quiz(name);               // calling quiz function defined in file "maincode.c"
        break;
      case 2:
        printf("\n Instructions:\n\n");
        display_instructions();   // calling display_instructions function defined in file "maincode.c" to display instructions of quiz
        printf("\n Back to main menu? ");
        printf(" Press 'Y' for Yes.\n");
        printf(" ");
        choiceY("Instructions");  //to validate user input
        break;
      case 3:
        printf(" Are you sure you want to quit this program?\n"); // Confirming if user really wants to quit
        printf(" Press 'Y' for Yes or 'N' for No: ");
        char choice = choiceY("Quit"); //to validate user input
        if (choice == 'y') {
          i1 = 0;
          printf(" Quit.\n");
        } else
          continue;

        break;

      default:
        printf("Invalid input! Please select from options 1, 2 or 3\n");
      }
    } else {
      printf("Not an integer\n");
    }
  }
  return 0;
}

Examples.
Code:
$ ./a.out 
 Enter your name: fred

 Welcome fred

 Press Enter key to continue.

 *                       Main Menu of Maths Quiz                            *
 * 1.Enter Quiz                                                             *
 * 2.Instructions                                                           *
 * 3.Quit                                                                   *
 ****************************************************************************
 Please choose one from 1-3:
 3
 Are you sure you want to quit this program?
 Press 'Y' for Yes or 'N' for No: y
 Quit.
$ ./a.out 
 Enter your name: fred

 Welcome fred

 Press Enter key to continue.

 *                       Main Menu of Maths Quiz                            *
 * 1.Enter Quiz                                                             *
 * 2.Instructions                                                           *
 * 3.Quit                                                                   *
 ****************************************************************************
 Please choose one from 1-3:
 q
Not an integer
 *                       Main Menu of Maths Quiz                            *
 * 1.Enter Quiz                                                             *
 * 2.Instructions                                                           *
 * 3.Quit                                                                   *
 ****************************************************************************
 Please choose one from 1-3:
 1

 Enter Quiz:

 Are you ready? Press Enter key to continue. 
 Question 1

 You have 3 attempts for this question

 90+6= 96

 You got it! You earned 10 marks

 Question 2

 You have 3 attempts for this question

 91-61= 30

 Great job! You earned 10 marks

 Question 3

 You have 3 attempts for this question

 36-36= 0

 Bingo! You earned 10 marks

 Question 4

 You have 3 attempts for this question

 65-24= 41

 You got it! You earned 10 marks

 Question 5

 You have 3 attempts for this question

 50-10= 40

 You got it! You earned 10 marks

 Question 6

 You have 3 attempts for this question

 42-9= 33

 Awesome! You earned 10 marks

 Question 7

 You have 3 attempts for this question

 57+6= 63

 Brilliant! You earned 10 marks

 Question 8

 You have 3 attempts for this question

 34+7= 41

 Awesome! You earned 10 marks

 Question 9

 You have 3 attempts for this question

 71-57= 14

 Brilliant! You earned 10 marks

 Question 10

 You have 3 attempts for this question

 34-24= 10

 Very good! You earned 10 marks

 End



 Enter 'S' to show results
 Enter 'P' to play another round
 Enter 'R' to return to main menu
 s
 Round 0 score: 100/100
 Highest score: 100/100
 Lowest score: 100/100
 Average score: inf
 ****** Player: fred ******


 Enter 'P' to play another round
 Enter 'R' to return to main menu
 r
 *                       Main Menu of Maths Quiz                            *
 * 1.Enter Quiz                                                             *
 * 2.Instructions                                                           *
 * 3.Quit                                                                   *
 ****************************************************************************
 Please choose one from 1-3:
 3
 Are you sure you want to quit this program?
 Press 'Y' for Yes or 'N' for No: y
 Quit.
Oh, and the reason you get inf is because
int rounds = 0;
is never anything other than 0.

So guess what happens here
avg = allScore / rounds; //average of all rounds