Beatriz Barbosa Postado Julho 3, 2016 Denunciar Share Postado Julho 3, 2016 (editado) 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 Julho 3, 2016 por Beatriz Barbosa ainda incompleto Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Julho 4, 2016 Denunciar Share Postado Julho 4, 2016 seu programa está incompleto... coisas como while(j>){ dam erro, outras como int i=,j=,cont=,contt=,aux=,auxx=;. Talvez na hora de copiar tenha sido borrado alguns caracteres. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Beatriz Barbosa
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)
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.