Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''ponteiro''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Encontrado 20 registros

  1. Boa noite pessoal, tudo bem com voces. Voces podem me ajurdar por favor? – Escreva um programa que com uma func¸ao chamada calcula que: • recebe como parametros duas variaveis inteiras, X e Y; • retorna em X a soma de X e Y; • retorna em Y a subtrac¸ao de X e Y . (a) Crie um arquivo de biblioteca (.h) com o nome lista08bib.h e coloque a declaraçao e prototipo da funçao calcula na biblioteca. (b) Crie um programa para chamar a funçao calcula. Salve e envie o seu arquivo com o nome programa01.c. Atençao: Lembre-se que ao final dessa lista voce devera enviar tambem o arquivo lista08bib.h.
  2. Olá, boa tarde. Estou com duvida sobre o porquê do meu código não rodar. Eu pesquisei na internet e aparentemente ele esta 100%, sem nenhum erro. #include <stdio.h> #include <stdlib.h> void somatorioMedia(float *a, int n, float *somatorio, float *media); int main(){ int i; float a[10]; int n = 10; float *somatorio; *somatorio = 0; float *media; *media = 0; for(i=0; i<10; i++){ printf("n[%i]: ", i); scanf("%f", &a[i]); } somatorioMedia(a, n, somatorio, media); printf("Somatorio: %.2f\n", *somatorio); printf("Media: %.2f", *media); return 0; } void somatorioMedia(float *a, int n, float *somatorio, float *media){ int i; for(i=0; i<n; i++){ *somatorio += a[i]; } *media = *somatorio / n; }
  3. Olá, estou com um exercício da faculdade que não consegui resolver, é um exercício onde preciso utilizar ponteiro para ponteiro em uma struct mas estou muito perdido na sintaxe. o exercício é o seguinte: Faça uma struct com dois campos, uma string para nome e um int para armazenar um número inteiro. Na main peça para o usuário digitar o tamanho do array da struct. Crie uma função para alocar dinamicamente esse array de struct e ler os dados digitados pelo usuário. Faça uma função que verifica os números pares digitados pelo usuário na struct e se o número for par dentro do if se chama outra função para manipular esse número par passando toda a struct, essa função deve receber a struct mas manipular apenas o número par dela e dividi-lo por 2 alterando a struct original. No final o programa deve imprimir na main o array dos números. Eu consegui fazer alocando na própria main, mas dessa forma com uma função separada não consegui. Vou deixar meu código, que deve ter vários erros mas serve pra ilustrar bem o que o exercício pede. #include <stdio.h> #include <stdlib.h> #include <locale.h> struct dados{ char nome[5]; int num; }; typedef struct dados dado; void manipula_um_par(dado **q){ **q.num=**q.num/2; } void manipula_pares(dado **q,int *x){ int i; for(i=0;i<*x;i++){ if(*(*q[i]).num%2==0){ manipula_um_par(&q[i]); } } } void define_structs(int *n, dado *q){ dado *p; int i; p = (dado *) malloc(*n*sizeof(dado)); printf("\n"); for(i=0;i<*n;i++){ printf("Digite o %dº nome: ",i+1); gets(p[i].nome); setbuf(stdin,NULL); printf("Digite o %dº número: ",i+1); scanf("%d", &p[i].num); setbuf(stdin,NULL); printf("\n"); } q=&p; } int main(){ setlocale(LC_ALL, "Portuguese_Brazil"); int n, i; dado **q; printf("Digite o tamanho do vetor de struct: "); scanf("%d",&n); setbuf(stdin,NULL); q = (dado *) malloc(n*sizeof(dado)); define_structs(&n,q); manipula_pares(q,&n); for(i=0;i<n;i++){ printf("%d\n", **q[i].num); } printf("\n"); return 0; }
  4. Olá pessoal, acabei de me cadastrar, então desculpe por algum erro.. Tenho de fazer um exercício em C, onde devo fazer uma agenda de dados e salvá-los em disco. Mas o meu único problema é que não sei como eu faço para conseguir pesquisar por nome as informações em um arquivo salvo em disco, no caso arquivo.txt Meu programa está assim: ------ #include<stdlib.h> #include<stdio.h> #include<conio.h> #include<string.h> #include<time.h> #include<ctype.h> struct dados { char nome[40], rg[30], telefone[10], estadocivil[40]; }; int main() { int menu, quant, quant1; char pesquisa[40]; struct dados func; FILE *agenda; agenda = fopen("agenda.txt", "at"); if (agenda == NULL) { printf("Não foi possível abrir o arquivo"); return 0; } do { printf("----------------------------------------------------------------------\n1-Consultar cliente;\n2-Cadastrar cliente;\n3-SAIR;\n\n"); scanf("%d", &menu); system("cls"); switch (menu) { case 1: printf("Digite o nome de quem deseja consultar: \n"); scanf("%s", &pesquisa); break; ----------- Não tenho a mínima ideia de como faço o item 1... os outros eu já me virei. Obs..: Não faz nem 1 mês direito que comecei a aprender a programar em C, então desculpem qualquer coisa. Pesquisei no site sobre a mesma dúvida, mas as respostas que vi não me ajudaram. Programa: Dev C++
  5. victorlima7788

    STRING

    eu estou fazendo um c[odigo aonde o us[ario vai me declarar uma letra pra responder uma questao que tem quatro opções de resposta(a,b,c,d), no total são 10 perguntas. dai eu pensei em fazer a seguinte string: char questionario[11]; e coloco no final de cada pergunta que eu faço, no caso apos o printf scanf("%s",questionario[1]); mas o problema é que nesse caso a letra que o usuário colocou n está sendo atribuida ao questionario[1] e sim a variável questionário, como se n tivesse vetor e sim, só uma variável nomeada quetionário, dai pras outras perguntas quando eu coloco scanf("%s",questionario[2]); por exemplo, ele continua considerando a resposta da primeira pergunta. como eu arrumo isso, pfv?
  6. uses wincrt ; type ponteiro = ^elemento; elemento = record chave : integer ; vet : array[1...3] of string ; prox : ponteiro ; end ; var p,prim,h,q : ponteiro ; i : integer; begin clrscr ; prim := nil ; new (p); h:=p; p^.chave:=1; p^.vet[1]:='ana'; p^.vet[2]:='bia'; p^.vet[3]:='lia'; writeln(p^.vet[1]); writeln(p^.vet[2]); writeln(p^.vet[3]); writeln; for i := 1 to 3 do begin new(q); q^.vet[1]:=p^.vet[1]+p^.vet[1,4-i]; q^.vet[2]:=p^.vet[2]+p^.vet[2,4-i]; q^.vet[3]:=p^.vet[3]+p^.vet[3,4-i]; writeln(q^.vet[1]); writeln(q^.vet[2]); writeln(q^.vet[3]); writeln; p:=q; end; end; #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct elemento{ int chave; char vet[3]; int *prox; char *p ,*prim, *h, *q; }; main(){ struct elemento_l; int i; prim = NULL; p=(char*) malloc (sizeof(char)); h=&p; p.chave=1; p.vet[1]='ana'; p.vet[2]='bia'; p.vet[3]='lia'; printf("%s\n",p.vet[1]); printf("%s\n",p.vet[2]); printf("%s\n",p.vet[3]); free(p); for (i=0;i<4;i++){ q=(char*) malloc (sizeof(char)); q.vet[1]=p.vet[1] + p.vet[1,(4-i)]; q.vet[2]=p.vet[2] + p.vet[2,(4-i)]; q.vet[3]=p.vet[3] + p.vet[3,(4-i)]; printf("%s\n",q.vet[1]); printf("%s\n",q.vet[2]); printf("%s\n",q.vet[3]); p = &q; } return(0);}
  7. Olá. Sou novo aqui e na área de programação. To tendo aulas de linguagem de programação e to tendo dificuldade (que acho que seja lógica) em desenvolver o programa que o professor pediu. Basicamente é para testarmos e aprendermos a manipular funções, parâmetros e algumas coisas mais simples. O programa que uso é o Dev C++. E to mexendo em linguagem C. Aqui vai o programa: 1) Elabore um programa de um hotel. Este programa precisa conter um menu com 6 opções: [1] Alterar o valor da estadia [2] Fazer Check-In [3] Fazer Check-Out [4] Atualizar as Lotacoes [5] Relatorio Diario [6] Sair Cada opção deve ter um tipo de função estabelecida. [1] - Em alterar estadia, é necessário que pergunte o valor novo da estadia. E este valor será usado para todo o resto do programa. [2] - Fazer check-in é para armazenar o nome do hospede, o tempo que ficará no hotel (em dias), o código da pessoa. (Se for 1, a pessoa fica no quarto de codigo 1. Caso a pessoa saia, esse número 1 é liberado e se torna 0. O 1 é só para estabelecer que naquela posição que o hospede foi hospedado, está livre.) [3] - Fazer check-out é para pegar os dados do hospede armazenado no vetor de estrutura, utilizado em check-in, e faz todo o calculo. Total de dias hospedados, o valor da conta, liberação do quarto (mudar para 0) [4] - Por enquanto não é necessário. [5] - Também não. Tenho dificuldade em usar os valores armazenados nas funções em outras funções, pois dá como se a variável fosse inexistente. Eu não entendo como usar ponteiros nesse caso, para passar valor. To preocupado, pois tenho medo de não me suceder neste área, por não entender o que se passa nos programas. =[ #include <stdio.h> #include <stdlib.h> //Definindo os dados dos hospedes typedef struct HospedeCadastro{ char Nome[80]; int Estadia, NumeroQuarto, Codigo; }Cadastro; //Alterando o valor da estadia typedef struct ValorEstadia(){ float TotalDebito2; if (TempoEstadia < 15) TotalDebito2 = 50 + TempoEstadia*4; if (TempoEstadia = 15) TotalDebito2 = 50 + TempoEstadia*3.60; if(TempoEstadia > 15) TotalDebito2 = 50 + TempoEstadia*3; return(TotalDebito2); }; int achaProximoLivre(Cadastro *cli){ int x; for(x=0; x<1000;x++){ if(cli[x].Codigo==-1) break; return(x); } } void inicializarClientes(Cadastro *cli){ int x; for (x=0; x<1000;x++) cli[x].Codigo=-1; } void MenuHotel(){ int Opcao, I, Quantidade, TotalDeHospedes; Cadastro Clientes[1000]; inicializarClientes(Clientes); while(Opcao!=6){ system("cls"); printf("******** Menu ********\n\n"); printf("[1] Alterar o valor da estadia"); printf("\n[2] Fazer Check-In"); printf("\n[3] Fazer Check-Out"); printf("\n[4] Atualizar as Lotacoes"); printf("\n[5] Relatorio Diario"); printf("\n[6] Sair"); printf("\n\nOpcao escolhida: "); scanf("%d", &Opcao); fflush(stdin); switch(Opcao){ case 1:{ // ValorEstadia(); break; } case 2:{ system("cls"); int x = achaProximoLivre(Clientes); printf("O proximo quarto livre é o %d"); printf("\nQual o numero do quarto que sera hospedado: "); scanf("%d", &Clientes[x].NumeroQuarto); fflush(stdin); printf("\nNome do hospede responsavel pelo quarto %d: ", Clientes[x].NumeroQuarto); gets(Clientes[x].Nome); break; } case 3:{ break; } case 4:{ break; } case 5:{ break; } case 6:{ continue; } } } } int main(void) { char Atendente[80]; int I; printf("Qual seu nome: "); gets(Atendente); printf("Seja bem-vindo(a), %s.", Atendente); for(I=0;I<1079999999;I++); MenuHotel(); }
  8. Não estou conseguindo aprender o suficiente de ponteiros na faculdade, poderiam sugerir materiais para entender completamente desse assunto?
  9. Boa noite, eu estou utilizando um integrador de n-corpos todo escrito em C que é o pacote chamado Rebound. Para o meu projeto o ideal seria adicionar novas variáveis em uma das estruturas do Rebound. A estrutura que o pacote vem é: struct reb_particle { double x; ///< x-position of the particle. double y; ///< y-position of the particle. double z; ///< z-position of the particle. double vx; ///< x-velocity of the particle. double vy; ///< y-velocity of the particle. double vz; ///< z-velocity of the particle. double ax; ///< x-acceleration of the particle. double ay; ///< y-acceleration of the particle. double az; ///< z-acceleration of the particle. double m; ///< Mass of the particle. double r; ///< Radius of the particle. double lastcollision; ///< Last time the particle had a physical collision. struct reb_treecell* c; ///< Pointer to the cell the particle is currently in. uint32_t hash; ///< hash to identify particle. void* ap; ///< Functionality for externally adding additional properties to particles. struct reb_simulation* sim; ///< Pointer to the parent simulation. }; Eu gostaria de adicionar, dado a seguir, as variáveis externamente, sem alterar o código fonte do pacote. double J2; //coeficiente J2 de achatamento planetário double J4; //coeficiente J4 de achatamento planetário double beta; //relação adimensional da força gravitacional e de radiação solar Eu realmente não sei qual seria a maneira ideal de fazer isso, eu sei que ele tem isso: void* ap; ///< Functionality for externally adding additional properties to particles. Mas eu nunca trabalhei com algo do gênero e nem sei se realmente serve para o que eu estou querendo. Não sei se consegui explicar direito o que eu preciso, só tentei ser o mais direta possível, mas se alguém puder dar alguma luz, ficarei muito grata.
  10. Olá!! Gostaria de saber como fazer para que um ponteiro guarde os dados de uma struct(nome, codigo, endereço, salario) e quando eu digitasse o código ele me traria as informações presentes nele. Alguém pode me ajudar? Aqui está a parte que vou precisar fazer as alterações: switch(cod){ case 1://alterações no cadastro de pacientes printf("Insira o código do paciente para alterações: "); scanf("%d",&pac.cod_pac); break; case 2://alterações no cadastro de médicos while(cod==2){ } break; case 3://excluir cadastro de pacientes while(cod==3){ } break; case 4://excluir cadastro de médicos while(cod==4){ } break; }
  11. Como comparar uma determinada posição de uma matriz através de colchetes sendo que passei como ponteiro de ponteiro (int **matriz) Main: while (qtdRainhas < n) { printf("\nInsira a linha: "); scanf("%i", &ri); printf("\nInsira a coluna: "); scanf("%i", &rj); verifica = verificaConflitos(ri-1, rj-1, tabuleiro, n); printf("verificou"); if (verifica == 0) { printf("\nentrou if\n"); tabuleiro[ri][rj] = 1; printf("Inseriu rainha %i" , i); qtdRainhas++; } else printf("\nPosicao invalida, insira novamente!"); } printf("\n"); Imprimir(tabuleiro, n); .h /**Imprime todas as posições do tabuleiro*/ void Imprimir(int **tabuleiro, int n); /**VERIFICA SE É POSSÍVEL POSICIONAR A RAINHA EM matriz(ri, rj). RETORNA 1 SE NÃO É POSSÍVEL E 0 SE FOR POSSÍVEL*/ int verificaConflitos (int ri, int rj, int **tabuleiro , int n); funcoes.c int verificaConflitos (int ri, int rj, int **tabuleiro, int n) { int i, i1, i2, j, j1, j2; int teste = 0; i1 = ri; i2 = ri; j1 = rj; j2 = rj; printf("\nentrou verificaConflito"); /**TESTA SE EXISTE ALGUMA NA MESMA LINHA OU COLUNA*/ for (i = 0; i < n; i++) { printf("\nentrou for"); if (tabuleiro[ri][i] == 1 || tabuleiro[i][rj] == 1)//o erro acontece aqui! { teste = 1; printf("\nentrou if"); break; } printf("\nsaiu for"); } O programa não está completo, mas tem o suficiente... Coloquei alguns printf's para ver até onde o programa vai. Penso que seja algo errado em relação ao "tabuleiro [ri] " por tê-lo passado como "** tabuleiro". Alguém sabe me dizer o problema e como consertá-lo?
  12. Tive a ideia de alterar os endereços de dois ponteiros (um pelo outro) invés de trocar os valores armazenados por eles. A intenção seria fazer isso com vetores (arrays), já que seria mais viável, aí veio o problema: Funcionou com ponteiros mas não funcionou com os vetores. Podem me ajudar a entender por quê? Os códigos: Ponteiros: #include<stdio.h> #include<stdlib.h> void invert_ad (int** a, int** b) { int* temp; temp = *a; *a = *b; *b = temp; } main() { int a = 10; int* pointer_a = &a; int** ppointer_a = &pointer_a; int b = 20; int* pointer_b = &b; int** ppointer_b = &pointer_b; printf("pointer_a Adress: %p\n", pointer_a); printf("pointer_b adress: %p\n", pointer_b); invert_ad (ppointer_a, ppointer_b); printf("pointer_a adress: %p\n", pointer_a); printf("pointer_b adress: %p\n", pointer_b); } Arrays: #include<stdio.h> #include<stdlib.h> void invert_ad (int** a, int** b) { int* temp; temp = *a; *a = *b; *b = temp; } main() { int array_a[5] = {0, 1, 2, 3, 4}; int array_b[5] = {5, 6, 7, 8, 9}; int** parray_a = &array_a; int** parray_b = &array_b; printf("array_a adress %p\n", array_a); printf("array_b adress %p\n", array_b); invert_ad (parray_a, parray_b); printf("array_a adress %p\n", array_a); printf("array_b adress %p\n", array_b); }
  13. 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]; }
  14. Olá pessoal, sou novo no c++ e me deparei com um problema. Estou desenvolvendo um projeto em que uma variável inteira (X) deve sempre ser 1 unidade maior que outra variável inteira (Y), e que esta regra fosse fixa no programa e sempre que ele alterar o valor de Y o de X também se altere, isso se poder, sem ter que incrementar X de acordo com Y depois de alterar Y. Por exemplo: Y = 50; X = (&Y) + 1; cout<<X<<endl; //51 Y = 90; cout<<x<<endl;//91 Desde já, obrigado a todos.
  15. Guilherme.

    Ajuda

    /* Aplicativo para criar um baralho, atribuir Naipes às cartas 25/11/2015 */ #include <stdio.h> #define LINHA 3 //Define uma constante global para 'linha' #define COLUNA 12 //Define uma constante global para 'coluna' main(){ int inicia_cartas(); //Declara o escopo do método 'inicia_cartas' char cartas[LINHA][COLUNA]; //Cria um vetor bidimensional cartas = inicia_cartas(); // "[ERROR]ASSIGNMENT TO EXPRESSION WITH ARRAY" //Exibe cartas int i; for(i = 0; i <= LINHA; i++){ int j; for(j = 0; j <= COLUNA; j++){ printf("%c\n", cartas[j]); } } } char inicia_cartas(){ //[Error] conflicting types for 'inicia_cartas' char set_naipe(int); char set_card(int); char cartas[LINHA][COLUNA]; //cria vetor bidimensional local int i; for(i = 0; i <= LINHA; i++){ int j; for(j = 0; j <= COLUNA; j++){ cartas[j] = set_card(j) + set_naipe(i); //atribui carta e naipe } } return cartas; //[Warning] return makes integer from pointer without a cast; [Warning] function returns address of local variable [-Wreturn-local-addr] } char set_naipe(int i){ char *naipes[] = {"Copa", "Ouro", "Espada", "Paus"}; return *naipes; } char set_card(int j){ char *card[] = {"As de ", "Dois de ", "Tres de ", "Quatro de ", "Cinco de ", "Seis de ", "Sete de ", "Oito de ", "Nove de ", "Dez de ", "Valete de ", "Dama de ", "Rei de "}; return *card[j]; }
  16. Boa tarde. Pessoal tenho um trabalho a fazer, onde devo manipular dados em um banco .txt. (cadastrar, consultar, excluir). Meu problema Inicial: Gravar arquivos de uma struct no meu .txt. --------------------------------------------------------------------------------- # include <stdio.h> int main (){ FILE *file; file = fopen ("banco.txt", "w"); int i; struct pessoa{ char nome[50]; int idade; }; struct pessoa cadastro[2]; printf ("Cadastro de Pessoas:\n\n"); for (i=0; i < 2; i++){ printf ("\nNome: "); fgets (cadastro.nome, 50, stdin); printf ("Idade: "); scanf ("%d", &cadastro.idade); getchar (); } return 0; } --------------------------------------------------------------------------------------- Sei que na forma q esta apenas cria o arquivo .txt, e as entradas de dados não são gravadas no mesmo. Minha dificuldade é justamente essa. Obrigado !!
  17. Olá a todos. Gostaria de pedir para alguém me ajudar a corrigir esse código, pois fiz mais não estou conseguindo corrigir o erro que está dando. erro gerado pelo programa: segmentation fault (core dumped). Não sei o que estou fazendo de errado mais creio que seja minha linha que tem "matriz = aloca(m,n)" O programa esta sendo desenvolvimento no codeblock 13.12 linux xubuntu ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #include<stdlib.h> #include<stdio.h> #include<locale.h> /* 2- Construa uma função que receba dois parâmetros m e n, aloque uma matriz de ordem m x n e retorne um ponteiro para a matriz alocada em tempo de execução. Crie ainda outra função que receba por parâmetro um ponteiro para matriz e libere a área de memória alocada. Finalmente, crie um programa (main) que teste/use as duas funções criadas. */ int *aloca(int m, int n); void liberaEspaco(int **p); int main(){ setlocale(LC_ALL,"portuguese"); int i=0,j=0,m,n, **matriz; printf("Informe o número de linhas que deseja em sua matriz:"); scanf("%d",&m); printf("Informe o número de colunas que deseja em sua matriz:"); scanf("%d",&n); matriz = aloca(m,n); for(i=0;i<m;i++){ for(j=0;j<n;j++){ printf("Matriz[%d][%d]:",i,j); scanf("%d",&matriz[j]); } } liberaEspaco(matriz); system("pause"); return 0; } int *aloca(int m, int n){ int *p; p=(int*)malloc(m*n*sizeof(int)); } void liberaEspaco(int **p){ free(p); }
  18. Olá a todos Gostaria de pedir ajuda a vocês pois estou tento dificuldades com funções usando ponteiros. Fiz todo o código, como segui abaixo, porém não estou sabendo passar as informações necessárias para as funções. Se alguém puder corrigir meu código ficaria muito grato. Programa utilizado para desenvolvimento CodeBlock 13.12 /* 1-Faça uma função que receba um valor n e crie dinamicamente um vetor de n elementos e retorne um ponteiro. Crie uma função que receba um ponteiro para um vetor e um valor n e imprima os n elementos desse vetor. Construa também uma função que receba um ponteiro para um vetor e libere esta área de memória. Por fim, crie uma função principal que leia um valor n e chame a função de alocação de memória. Depois, a função principal deve ler os n elementos desse vetor. Então, a função principal deve chamar a função de impressão dos n elementos do vetor criado e, finalmente, liberar a memória alocada através da função criada para liberação. */ int *aloca(int n); void mostra(int *p, int n); void liberaEspaco(int *p); int main(){ int n,i, *vetor; printf("Quantos números deseja armazenar no vetor?\n"); scanf("%d",&n); vetor = &aloca; for(i=0;i<n; i++){ printf("Informe números: \n"); scanf("%d",&vetor); } mostra(vetor, n); liberaEspaco(vetor); system("pause"); return 0; } int *aloca(int n){ int *p; p=(int*)malloc(n * sizeof(int)); if(!p){ printf("memoria insufuciente para alocacao!!"); exit(0); } return p; } void mostra(int *p, int n){ int i; for(i=0; i<n; i++, p++){ printf("Posicao %d = %d: \n",i,*p); } } void liberaEspaco(int *p){ free(p); if(p == NULL){ printf("Espaço liberado!!!!"); } }
  19. Boa tarde! Estou fazendo uma I.C. onde estou precisando aprimorar um programa de geração de demanda. Basicamente, ele gera números aleatórios baseando em alguma distribuição de probabilidade (nesse caso: uniforme, poisson e log normal). O programa tem um conjunto de entradas: Número de dias (funciona como numero de linhas de uma matriz); Número de nós (funciona como numero de colunas de uma matriz); Número médio de "picos" de demanda por nó; Duração média de cada "pico"; Demanda média em cada pico; Demanda média sem a ocorrência de pico; Demanda máxima; Ele roda e gera um arquivo .xls com a matriz (Número de dias X Número de nós); Meu orientador pediu para que essas entradas listadas acima fossem lidas a partir de um arquivo externo. Ou seja, já existiria um .txt ou .xls com esses dados, o programa ao rodar deve buscar esses dados e gerar a matriz, para evitar o trabalho de colocar esses dados. Alguém pode me ajudar como fazer isso? Estou completamente perdido em por onde começar! Obrigado!
  20. O programa roda bem até a hora de imprimir as informações dos livros, ele imprime só o titulo do primeiro livro e para a execução, as vezes o programa para de responder ou não acontece mais nada. O que pode ser? #include <stdio.h> typedef struct livros { int ISBN; char *titulo; char editora; char local_pub; char data_pub; char primeiro_autor; char segundo_autor; } TLivros; int main() { int i; TLivros vet[10]; TLivros *p; p = (TLivros*)malloc(5*sizeof(TLivros)); for(i=1; i<=2; i++) { printf("\nInforme a data de publicacao do livro %d no formato dd/mm/aa: ",i); fflush(stdin); scanf("%s", &vet[i].data_pub); } for(i=1; i<=2; i++) { printf("\nInforme a data de publicacao do livro %d no formato dd/mm/aa: ",i); fflush(stdin); scanf("%s", &p->data_pub); } for(i=1; i<=2; i++) { vet[i].titulo = (char*)malloc(20*sizeof(char)); } for(i=1; i<=2; i++) { printf("\nInforme o titulo do livro %d: ",i); fflush(stdin); fgets(vet[i].titulo,20,stdin); } printf("-------------------LIVROS-------------------"); for(i=1; i<=2; i++) { printf("\nTitulo do livro %d: %s",i,vet[i].titulo); printf("\nData de publicacao do livro %d: %s",i,vet[i].data_pub); printf("\nData de publicacaodo livro %d: %s",i,p->data_pub); } return 0; }
×
×
  • Criar Novo...