Hum..eu fiz um programa desse também, mas não parece tão complexo quantos esses ae, e PRIMEIRO PEDE O NUMERO COM A OPERAÇÃO DESEJADA E Só DEPOIS PEDE PRA INFORMAR OS NUMEROS DA OPERAÇÃO:
Fiz assim
1º declarei algumas funções fora de main() são elas:Somar,Subtrair,Multiplicar,Dividir,Raiz;
tenho elas aqui se você quiser:
int somar (int a, int b ){
return(a+b );
}
int subt (int a, int b ){
return(a-b );
}
int mult(int a, int b ){
return(a*b );
}
int divd(int a, int b ){
return(a/b);
}
int raiz(int a) {
return(a*a);
}
2º declarei as seguintes variaveis:
option,result,n1,n2;
3º Fiz o menu aparecer na tela assim como o seu, e la no final botei("Escolha uma opcao")
ex:
printf("\t\t\t\tCalculadora MS-DOS\n");
printf("\t\t\t<1> Somar\n");
printf("\t\t\t<2> Subtrair\n");
printf("\t\t\t<3> Multiplicar\n");
printf("\t\t\t<4> Dividir\n");
printf("\t\t\t<5> Raiz\n");
printf("Escolha um numero: ");
scanf("%d",&option);
3º Fiz um switch de opcao:
onde: case 1{
printf("Informe o primeiro numero")
scanf("%d",&num1)
printf("Informe o segundo numero")
scanf("%d",&num2)
ai aqui eu usava a variavel result assim:
RESULT=SOMAR(A+N)
e depois FAZIA UM PRINTF COM A RESULT QUE AGORA TEM O VALOR DE SOMAR(A,B ) PRINTF("%D", RESULT)
}
Se case2: {
fazia a mesma coisa só que usavaRESULT= SUBT(a,b );
}
Basicamente fazia isso em todos
Espero ter ajudado.