Ir para conteúdo
Fórum Script Brasil
  • 0

Calculadora Infinita,parâmetros


Beatriz Barbosa

Pergunta

Não estou conseguindo enviar parâmetro para a função menu,onde isto poderia estar errado?(Não se importar com certos printf's,foi pra visão de variáveis)

#include <stdio.h>
typedef struct {
    double *digito;
}numero;
double conversor(char cho);
void soma(numero bla,numero ble,int i,int j);
int menu(numero bla,numero ble,int i,int j);




int main(void)
{
    char url[]="teste.txt";
    char ch;
    FILE *arq;
    numero bla,ble;
    int i=,j=,cont=,contt=,aux=,auxx=;
    bla.digito=calloc(1,sizeof(double));
    ble.digito=calloc(1,sizeof(double));

    arq = fopen(url, "r");
    if(arq == NULL){
        printf("Erro, não foi possivel abrir o arquivo\n");
    }else{
        while( (ch=fgetc(arq))!= EOF ){
            if((ch=='\n')||(ch=='\r')){
                break;
            }
        putchar(ch);
        bla.digito = realloc(bla.digito,(++cont)*sizeof(double));
        //ch=ch-48;
        bla.digito[i]=conversor(ch);
        aux++;
        }
        printf("\n%d numeros\n",aux);
    printf("\n\n");
        while( (ch=fgetc(arq))!= EOF ){
            putchar(ch);
            ble.digito = realloc(ble.digito,(++contt)*sizeof(double));
            //ch=ch-48;
            ble.digito[j]=conversor(ch);
            auxx++;
        }
        printf("\n%d numeros\n",auxx);
    }
    fclose(arq);
    printf("%1.0lf  %1.0lf  %d  %d",bla.digito[i],ble.digito[j],cont,contt);
    menu(bla,ble,cont,contt);
    return ;

}

void soma(numero bla,numero ble,int i,int j){
    numero blu;
    int g=,c=,t,z,h=,l=;
    t=i;z=j;
    printf("\n%d %d AAAAAAAAAAAAAAAAAAAAAAAA\n",i,j);
    blu.digito=calloc(1,sizeof(double));
    if(i<j){
        while(i>){
            blu.digito = realloc(blu.digito,(++c)*sizeof(double));
            //blu.digito[g]=NULL;
            blu.digito[g]=bla.digito[i]+ble.digito[j];
            if(blu.digito[g]>9){
                blu.digito[g]=blu.digito[g]-10;
                ble.digito[j--]=1+ble.digito[j--];
                j++;
            }
            g++;
            i--;j--;
        }
        while(j>){
            blu.digito = realloc(blu.digito,(++c)*sizeof(double));
            //blu.digito[g]=NULL;
            blu.digito[g]=+ble.digito[j];
            if(blu.digito[g]>9){
                blu.digito[g]=blu.digito[g]-10;
                ble.digito[j--]=1+ble.digito[j--];
                j++;
            }
            g++;
            j--;
        }
        printf("RESULTADO: \n");
        while(g>){
            printf("%1.0lfXXX",blu.digito[g]);
            g--;
        }
    }else{
        while(j>){
            blu.digito = realloc(blu.digito,(++c)*sizeof(double));
            //blu.digito[g]=NULL;
            blu.digito[g]=bla.digito[i]+ble.digito[j];
            printf("\n%1.0lf  %1.0lf  %1.0lf  \n",blu.digito[g],bla.digito[i],ble.digito[j]);
            printf("\n%d %d AAAAAAAAAAAAAAAAAAAAAAAA\n",i,j);
            if(blu.digito[g]>9){
                blu.digito[g]=blu.digito[g]-10;
                bla.digito[i--]=1+bla.digito[i];
                i++;
            }
            i--;j--;
        }
        while(i>){
            blu.digito = realloc(blu.digito,(++c)*sizeof(double));
            //blu.digito[g]=NULL;

            blu.digito[g]=+bla.digito[i];
            if(blu.digito[g]>9){
                blu.digito[g]=blu.digito[g]-10;
                bla.digito[i--]=1+bla.digito[i];
                i++;
            }
            printf("\n%d %d AAAAAAAAAAAAAAAAAAAAAAAA\n",i,j);
            i--;
        }
        g=c;
        printf("\n%d numeros\n",g);
        printf("RESULTADO: \n");
        while(g>){
            printf("%1.0lf-",blu.digito[g]);
            g--;
        }
    }
}

int menu(numero bla,numero ble,int i,int j){
    int opcao;
    printf("\n\nCALCULADORA 'INFINITA'\n");
    printf("OPCOES:(digite numero correspondente)\n");
    printf("1-SOMA\n");
    printf("2-SUBTRAÇÃO\n");
    printf("3-MULTIPLICAÇÃO\n");
    printf("4-DIVISÃO\n");
    printf("5-RESTO\n");
    printf("6-SAIR\n");
    scanf("%d",&opcao);
    if((opcao<)||(opcao>6)){
        printf("Opção inválida");
        //menu();
    }
    switch(opcao){
        case 1:
            printf("%1.0lf  %1.0lf  ",bla.digito[i],ble.digito[j]);
            system("pause");
            soma(bla,ble,i,j);
            break;
        case 2:
            //subtracao();
            break;
        case 3:
            //multiplicacao();
            break;
        case 4:
            //divisao();
            break;
        case 5:
            //resto();
            break;
    }
}

double conversor(char cho){
    numero blas;
    int ii=,aux=;
    blas.digito=calloc(1,sizeof(double));
    if(cho=='0'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=;
    }else if(cho=='1'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=1;
    }else if(cho=='2'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=2;
    }else if(cho=='3'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=3;
    }else if(cho=='4'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=4;
    }else if(cho=='5'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=5;
    }else if(cho=='6'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=6;
    }else if(cho=='7'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=7;
    }else if(cho=='8'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=8;
    }else if(cho=='9'){
        blas.digito = realloc(blas.digito,(++aux)*sizeof(double));
        blas.digito[ii]=9;
    }else{
        printf("deu merda");
    }
    return blas.digito[ii];
}

 

Editado por Beatriz Barbosa
ainda incompleto
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...