int main(int argc, char** argv) { int opcao; float num01,num02; do { printf("Entre com o numero da operacao matematica:\n"); printf("1 - Adição;\n"); printf("2 - Subtração;\n"); printf("3 - Multiplicação;\n"); printf("4 - Divisao;\n"); printf("5 - Modulo;\n"); printf("6 - Sair;\n"); scanf("%d",&opcao); printf("Entre com um numero: "); scanf("%f",&num01); printf("Entre com um numero: "); scanf("%f",&num02); if(opcao == 1){ printf("%.0f + %.0f = %.0f\n",num01,num02,Adicao(num01,num02)); } else if(opcao == 2){ printf("%.0f - %.0f = %.0f\n",num01,num02,Substracao(num01,num02)); } else if(opcao == 3){ printf("%.0f * %.0f = %.0f\n",num01,num02,Multiplicacao(num01,num02)); } else if(opcao ==4){ printf("%.0f / %.0f = %.2f \n",num01,num02,Divisao(num01,num02)); } else if(opcao == 5){ printf("%.0f %% %.0f = %.2f\n",num01,num02,Modulo(num01,num02)); } else if( opcao != 6){ printf("Operador matematico não encontrado\n"); } else{ printf("Saindo do sistema."); } }while(opcao != 6); return (EXIT_SUCCESS); }
TAB *Insere(TAB *T, int k, int t){ if(Busca(T,k)) return T; if(!T){ T=Cria(t); T->chave[0] = k; T->nchaves=1; return T; } if(T->nchaves == (2*t)-1){ TAB *S = Cria(t); S->nchaves=0; S->folha = 0; S->filho[0] = T; S = Divisao(S,1,T,t); S = Insere_Nao_Completo(S,k,t); return S; } T = Insere_Nao_Completo(T,k,t); return T; }
TAB *Insere_Nao_Completo(TAB *x, int k, int t){ int i = x->nchaves-1; if(x->folha){ while((i>=0) && (k<x->chave[i])){ x->chave[i+1] = x->chave[i]; i--; } x->chave[i+1] = k; x->nchaves++; return x; } while((i>=0) && (k<x->chave[i])) i--; i++; if(x->filho[i]->nchaves == ((2*t)-1)){ x = Divisao(x, (i+1), x->filho[i], t); if(k>x->chave[i]) i++; } x->filho[i] = Insere_Nao_Completo(x->filho[i], k, t); return x; }