please copy this code to the any compiler

/////////////////////////////////////////

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define M_PI 3.14159265358979323846
int check(int qq,int jj){

qq=qq%4;
jj=jj%4;
if(qq==jj)
return 1;
if(qq+jj==3)
return 1;
else
return 0;
}
///////////////////////
int mymag(int n){
int can[40][40]={0};
int i,xx,yy,hand,j,val,compl;
if(n%2==0){
val=0;
compl=1+n*n;
for(i=0;i<=n-1;i++){
for(j=0;j<=n-1;j++){
val++;
if(check(i,j))
can[i][j]=compl-val;
else
can[i][j]=val ;
}
}
}
else{
hand=0;xx=-1; yy=(n-1)/2;
for(i=1;i<=n;i++){
xx++;
if(xx>=n)
xx=0;
hand++;
can[xx][yy]=hand;
for(j=1;j<=n-1;j++){
xx--;
if(xx<0)
xx=n-1;
yy++;
if(yy>=n)
yy=0;
hand++;
can[xx][yy]=hand;
}
}
}
for(xx=0;xx<=n-1;xx++){
for(yy=0;yy<=n-1;yy++){
printf("%4d",can[xx][yy]);
}
printf("\n");
}

}
////////////////////////////
void myfac(long keyin){
int big[99]={0},i,k,go=0,stay=0,cc=0;
int count=0;
big[98]=1;
for(i=1;i<=keyin;i++){
for(k=98;k>=0;k--){
big[k]*=i;
big[k]+=go;
if(big[k]>9){
go=big[k]/10;
stay=big[k]%10;
big[k]=stay;
}
else
go=0;
}
}
while(big[count]==0){
count++;
cc=count;
}
printf("result:");
for(i=cc;i<99;i++){
printf("%d",big[i]);
}
}
//////////////////////////
double mylog(double x){
int i,change,k;
double sum,ans;
ans=0;
sum=1;
for(i=1;i<2000;i++){
ans+=sum;
sum=sum*x/i;
}

return ans;
}

//以上為自然對數函數
double mycos(double x){
int i,change,k;
double sum,ans;
x=x*M_PI/180;
while( x > 2*M_PI )
x-=(2*M_PI);
while( x < 0 )
x+=(2*M_PI);
ans=0;
sum=1;
k=2;
for(i=1;i<2000;i++){
ans+=sum;
sum=sum*pow(x,2.0)/(k-1)/k;
k+=2;
sum=-sum;
}
return ans;
}//以上為COS函數 //////////////////
double mysin(double x){
int i,change,k;
double sum,ans;
x=x*M_PI/180;
while( x > 2*M_PI )
x-=(2*M_PI);
while( x < 0 )
x+=(2*M_PI);
ans=0;
sum=x;
k=2;
for(i=1;i<2000;i++){
ans+=sum;
sum=sum*pow(x,2.0)/(k+1)/k;
k+=2;
sum=-sum;
}
return ans;
}//以上為SIN函數 //////////////////
int main(){
char temp[40]={0};
char qq[1]={0};
double ex,qq1;
long ex2;
int kk;
int ok,p_num,n_num;
while(1){
printf("****This is main menu****\n");
printf("*1)求cos函數請按1 *\n");
printf("*2)求sin函數請按2 *\n");
printf("*3)求自然對數的次方請按3*\n");
printf("*4)求魔方陣請按4 *\n");
printf("*5)求階乘請按5 *\n");
printf("*6)結束程式請按0 *\n");
printf("*************************\n");
printf("choice:");
while(1){
scanf("%s",&qq);
if((qq[0]>='A'&&qq[0]<='Z')||(qq[0]>='a'&&qq[0]<='z')){
printf("連數字都打錯,不太好唷!!\n");
printf("****This is main menu****\n");
printf("*1)求cos函數請按1 *\n");
printf("*2)求sin函數請按2 *\n");
printf("*3)求自然對數的次方請按3*\n");
printf("*4)求魔方陣請按4 *\n");
printf("*5)求階乘請按5 *\n");
printf("*6)結束程式請按0 *\n");
printf("*************************\n");
printf("choice:");
continue;
}
break;
}
qq1=atoi(qq);
if(qq1==1){
while(1){
int aa;
printf("請輸入要求的cos值(度度量喔),輸入-999或q則回上ㄧ層\n");
while(1){
ok = 1;
p_num=0;
n_num=0;
scanf("%s",&temp);
for(aa=0;temp[aa]!='\0';aa++){
if(((temp[aa]>='A'&&temp[aa]<='Z')||(temp[aa]>='a'&&temp[aa]<='z'))&&temp[0]!='q'){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的cos值(度度量喔),輸入-999或q則回上ㄧ層\n");
ok=0;
break;
}
if(temp[aa]=='.')
p_num++;
if(p_num>1 || temp[0]=='.'){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的cos值(度度量喔),輸入-999或q則回上ㄧ層\n");
ok=0;
break;
}
if(temp[aa]=='-')
n_num++;
if(n_num > 1 || (n_num==1 && temp[0] != '-' ) ){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的cos值(度度量喔),輸入-999或q則回上ㄧ層\n");
ok=0;
break;
}
}
if(ok==1)
break;
}
if(temp[0]=='q')
break;
ex=atof(temp);
if(ex==-999){
break;
}
printf("result: %lf\n",mycos(ex));
printf("C裡面的cos函數值: %lf\n",cos(ex/180*M_PI));
printf("===-===-===-===-===-===\n");

}
}
if(qq1==2){
while(1){
int aa;
printf("請輸入要求的sin值(度度量喔),輸入-999或q則回上ㄧ層\n");
while(1){
ok = 1;
p_num=0;
n_num=0;
scanf("%s",&temp);
for(aa=0;temp[aa]!='\0';aa++){
if(((temp[aa]>='A'&&temp[aa]<='Z')||(temp[aa]>='a'&&temp[aa]<='z'))&&temp[0]!='q'){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的sin值(度度量喔),輸入-999或q則回上ㄧ層\n");
ok=0;
break;
}
if(temp[aa]=='.')
p_num++;
if(p_num>1 || temp[0]=='.'){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的sin值(度度量喔),輸入-999或q則回上ㄧ層\n");
ok=0;
break;
}
if(temp[aa]=='-')
n_num++;
if(n_num > 1 || (n_num==1 && temp[0] != '-' ) ){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的sin值(度度量喔),輸入-999或q則回上ㄧ層\n");
ok=0;
break;
}
}
if(ok==1)
break;
}
if(temp[0]=='q')
break;
ex=atof(temp);
if(ex==-999){
break;
}
printf("result: %lf\n",mysin(ex));
printf("C裡面的sin函數值: %lf\n",sin(ex/180*M_PI));
printf("===-===-===-===-===-===\n");


}


}
if(qq1==3){
while(1){
int aa;
printf("請輸入要求的自然對數的次方,輸入-999或q則回上ㄧ層\n");
while(1){
ok = 1;
p_num=0;
n_num=0;
scanf("%s",&temp);
for(aa=0;temp[aa]!='\0';aa++){
if(((temp[aa]>='A'&&temp[aa]<='Z')||(temp[aa]>='a'&&temp[aa]<='z'))&&temp[0]!='q'){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的自然對數的次方,輸入-999或q則回上ㄧ層\n");
ok=0;
break;
//continue;
}
if(temp[aa]=='.')
p_num++;
if(p_num>1 || temp[0]=='.'){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的自然對數的次方,輸入-999或q則回上ㄧ層\n");
ok=0;
break;
}
if(temp[aa]=='-')
n_num++;
if(n_num > 1 || (n_num==1 && temp[0] != '-' ) ){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的自然對數的次方,輸入-999或q則回上ㄧ層\n");
ok=0;
break;
}
}
if(ok==1)
break;
}
if(temp[0]=='q')
break;
ex=atof(temp);
if(ex==-999)
break;
printf("result: %lf\n",mylog(ex));
printf("===-===-===-===-===-===\n");
}
}
if(qq1==4){
while(1){
int aa,h;
printf("請輸入魔方陣的階數(奇數或4的倍數),輸入-999或q或-1則回上ㄧ層\n");
printf("註:超過20空間可能會不夠排列\n");
while(1){
ok = 1;
scanf("%s",&temp);
for(aa=0;temp[aa]!='\0';aa++){
if(temp[0]=='-'&&temp[1]=='9'&&temp[2]=='9'&&temp[3]=='9'||temp[0]=='-'&&temp[1]=='1'||temp[0]=='q')
break;
if(temp[aa]>'9'||temp[aa]<'0'||temp[0]=='2'&&temp[1]==0){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入魔方陣的階數(奇數或4的倍數),輸入-999或q或-1則回上ㄧ層\n");
ok=0;
break;
}
h=atoi(temp);
if(h%2==0&&h%4!=0){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入魔方陣的階數(奇數或4的倍數),輸入-999或q或-1則回上ㄧ層\n");
ok=0;
break;
}
if(h/2!=0)
break;
}
if(ok==1)
break;
}
if(temp[0]=='q')
break;
ex2=atoi(temp);
if(ex2==-999||ex2==-1)
break;
mymag(ex2);
printf("\n===-===-===-===-===-===\n");
}
}
if(qq1==5){
while(1){
int aa,bb;
printf("請輸入要求的階乘數(0到58),輸入-999或q或-1則回上ㄧ層\n");
while(1){
ok = 1;
p_num=0;
n_num=0;
scanf("%s",&temp);
for(aa=0;temp[aa]!='\0';aa++){
if(temp[0]=='-'&&temp[1]=='9'&&temp[2]=='9'&&temp[3]=='9'||temp[0]=='-'&&temp[1]=='1'||temp[0]=='q')
break;
else if(temp[aa]>'9'||temp[aa]<'0'){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的階乘數(0到58),輸入-999或q或-1則回上ㄧ層\n");
ok=0;
break;
}
ex2=atoi(temp);
if(ex2>58){
printf("連數字都打錯,不太好唷!!\n");
printf("請輸入要求的階乘數(0到58),輸入-999或q或-1則回上ㄧ層\n");
ok=0;
break;
}
}
if(ok==1)
break;
}
if(temp[0]=='q')
break;
ex2=atoi(temp);
if(ex2==-999||ex2==-1)
break;
// printf("result: %ld\n",myfac(ex2));
myfac(ex2);
printf("\n===-===-===-===-===-===\n");
}
}
if(qq1==0){
exit(0);
}
if(qq1!=0&&qq1!=1&&qq1!=2&&qq1!=3&&qq1!=-999&&qq1!=4){
printf("連數字都打錯,不太好唷!!\n");

}
}
return 0;
}

//////////////////////////////////