Mnemonic

Membros
  • Content Count

    170
  • Joined

  • Last visited

Community Reputation

0 Neutro

1 Follower

About Mnemonic

  1. Na quarta linha da função main, você declarou seu ponteiro assim: Pstring=(char *) malloc((i+1)*sizeof(char)); O valor de 'i' é zero, o que significa que Pstring equivale a apenas UM char. Dentro do WHILE você usa a função realloc: Pstring=(char *) realloc(Pstring,(i+1)*sizeof(char)); Mas o valor de 'i' ainda é zero, então mesmo com o ponteiro sendo realocado pra outro endereço, ele continua guardando apenas UM char. Por isso que quando você tenta acessar outras posições de memória usando como base o endereço de Pstring, o programa imprime lixo de memória.
  2. Nesse caso ele tá imprimindo o valor absoluto dos items da lista, mas se você usar um "priint (lista[0])", ele teoricamente imprimiria o valor convertido... "João". Eu digo teoricamente, porque na prática isso vai depender do terminal onde você tá rodando isso e não do python. No terminal da maioria das distros linux por exemplo, que já é adaptado pra tratar unicode, o nome é escrito normalmente... Mas se não me engano, no terminal do windows isso não acontece. Daí você precisaria antes fazer o próprio programa configurar o terminal antes de imprimir unicode nele.
  3. O caso onde você compila um programa no gcc do linux e ele funciona em alguma derivação do unix existe... Mas é um caso especial. É a exceção, não o padrão. No caso normal as chances de funcionar são bem pequenas... diferenças no kernel, na arquitetura, nos modulos, etc...
  4. Mnemonic

    Método Newton-Raphson

    Esse nem digitou a questão... :lol:
  5. Só fazer por partes. T <- -T x A² / 2 x N x (2 x N + 1) add t0, N, N add t1, t0 1 # t1 = 2xN + 1 mult t1, t1, t0 #t1 = 2 x N x 2 x N + 1 ...etc...
  6. t0 recebe 0 + 100 t1 recebe 100 + 2 Se t0 > 200 , parar t0 recebe 100 + 102 (202) t1 recebe 102 + 2 (104) Se t0 > 200, parar (t0 é 202, então é maior que 200) Daí ele sai do loop, com t0 valendo 202.
  7. Eu não entendi realmente o que você queria fazer no código, mas o erro tá no: "b main" troque por "b loop" que funciona.
  8. typedef struct tJogador { char nome[50]; int pontos; } Jogador; Jogador jog[10]; - fopen, abriu arquivo "jogadores.txt" para leitura apenas. - lê uma linha do arquivo, guarda nome e pontuação em jog[0].nome e jog[0].pontos - lê outra linha do arquivo, guarda nome e pontuação em jog[1].nome e jog[1].pontos - lê mais outra... guarda em jog[2]... - etc... - fecha arquivo O arquivo tá fechado, mas todos os dados que você precisa estão guardados no vetor "jog[]". Então você chama as funções do seu jogo, faz o que tiver que fazer, quando o jogador vencer você procura o nome dele em jog[]. Se estiver lá, você só muda a pontuação... se ele não estiver lá, é só pegar uma posição vazia do vetor e incluir ele. Terminou de executar o jogo, então: - fopen, abre o arquivo "jogadores.txt" pra escrita. - pega os dados de jog[0] e escreve no arquivo - pega os dados de jog[1] e escreve no arquivo - pega os dados de jog[2] e escreve no arquivo - etc... - fecha arquivo Como você abriu o arquivo pra escrita ("w"), o conteúdo que tava antes nele vai ser perdido, e você terá um arquivo novinho em folha com os dados dos jogadores atualizados.
  9. É muito fácil achar isso, cara. Video no youtube, blogs com o passo a passo, tópicos no forum do ubuntu-br... é só ter coragem de usar o google.
  10. Quando o programa começar, você guarda tudo que estiver no arquivo pra memória (ou seja, um vetor ou estrutura, etc), e faz alterações apenas nessa memória... Quando o programa finalizar, você sobrescreve o arquivo com os dados novos.
  11. Na verdade eu já tinha as fontes truetype do windows e já tava com 96dpi. O culpado é o firefox mesmo... apenas pra terem idéia de como a imagem do forum fica aqui: Lado esquerdo chromium, lado direito firefox. Acho que dá pra entender porque eu acho ruim de ler.
  12. O programa enxerga o texto como uma string (um monte de caracter). Então você pega eles com o getc() mesmo, no seu código você transforma eles de volta em número. Existe a opção de usar o fscanf() e já transformar eles em número no momento da leitura, mas o getc é bem mais simples e rápido. int c; int temp[8]; arquivo = fopen(...); for (x=0; x<8 && !feof(arquivo); x++) { c = getc(arquivo); temp[x] = c - 48; } fclose(arquivo);
  13. void teste(int *x) { *x = 12; } // ... int x = 0; // x é igual a 0 teste( &x ); // agora x é igual a 12
  14. É só usar uma função que retorna o valor dela.