im making a highest number program with counter and a multiplication program with array and im not sure where im going wrong, the highest number always comes out at 0, and in the multiplication the number always gets * by 12 (the ending number), thanks for any help on this problem! and sorry its a bit of a mess lol

Code:

#include "stdafx.h"
#include <stdlib.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main ()
{
int choice = 0;
int multi = 0;
int x = 0;
int x1 = 0;
int x2 = 0;
int highest = 0;
int num1 = 0;
int num2 = 0;
int total = -1;
printf("Math Menu\n\n");
printf("\n1:Highest Number\n");
printf("2:Muliplication Table\n");
printf("\nPlease select (1 or 2):\t");
scanf("%c",&choice);
system ("cls");
switch (choice)
{
case '1':
printf("Highest Number Calc\n\n");
do{
printf("\nPlease Input a number or input -999 to finish\n");
int highest(int, int);
scanf("%d", &num1);
total = total + 1;
}while (num1 != -999);
printf("%d, is the highest number and there where %d, numbers inputed", highest, total);
break;
int highest(int num1, int num2);
{
if (num1 < num2)
return (num2);
if (num1 > num2)
return (num1);
}
case '2':
printf("Please Input a Number for your Multiplication Table: ");
scanf("%d", &x1);
int multiray[12];
for(x = 0;x < 13; x++)
multiray[x] = x;
(x2 = x*x1);
for(x = 0;x < 13; x++)
printf("%d x %d = %d\n", multiray[x], x1, x2);
break;
default:
printf("\nInvalid selection\n");
} // end switch
getch();
return 0;
}