Ir para conteúdo
Fórum Script Brasil

Felipe Nóbrega

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Tudo que Felipe Nóbrega postou

  1. Mano, ficou claro sim! Resolvido, era o %c que estava dando o problema, eu creio que usando o %s + o for gerava algum tipo de problema, vou pesquisar mais a fundo. Obrigado! Eu queria esse programa funcionando pois agora eu posso comparar palavras e vou tentar dar um jeito de alterá-las, quando estiver usando arquivos. Obrigado pela ajuda!
  2. Olá! Eu estou estudando linguagem C por conta própria. Não faço nenhum curso na área, porém sempre admirei e ainda admiro programação. Eu sou bem novato no assunto e encontrei um problema em um "programa" que estou fazendo que tem apenas a função de imprimir na tela uma string a partir de um ciclo for. Eu sei que tem uma biblioteca em C, a string.h que é feita especificamente para tratar de Strings, porém eu ainda não quero utilizá-la, já que mal entendo ainda como funciona a linguagem. O compilador que eu uso é o Dev-C++ 5.11; Já vi em vários locais a sugestão de não utilizá-lo, porém eu tentei instalar o Code::Blocks e o mesmo não está funcionando, já que ele não está instalando o GCC. De início, eu achei que o defeito fosse no Dev-C++, mas eu cheguei até a criar uma máquina virtual, instalar o Linux nela e a compilar diretamente pelo GCC no Terminus, e ainda assim não deu certo. O erro que dá no Dec-C++ é que o programa simplesmente para de funcionar quando chega na etapa que eu quero. Ele para de responder. Eu pensei que fosse problema do Dev-C++, por isso fui buscar outros, mas quando fui para o GCC, descobri que era um problema na memória. Parece que eu estava "invadindo" uma memória que "não me pertencia", porém só achei soluções em fóruns em inglês, e isso foi o máximo que consegui descobrir, não sabendo aonde eu estava, especificamente, errado. Irei copiar o código e me perdoem se errei no local de postagem ou outra coisa do gênero. E agradeço desde já! #include <stdio.h> int main() { int i; char nome[100]; scanf("%s", nome); /*eu sei que não é a melhor função para 'pegar' strings, mas basta para o quê eu quero.*/ for(i=; nome[i]!='\0'; i++) printf("%s", nome[i]); } #include <stdio.h> int main() { int i; char nome[100]; scanf("%s", nome); /*eu sei que não é a melhor função para 'pegar' strings, mas basta para o quê eu quero.*/ for(i=; nome[i]!='\0'; i++) printf("%s", nome[i]); } Não entendi por que ficaram dois e não consegui excluir o outro :v Obs: Eu estou estudando C pelo livro Linguagem C de Luís Damas, 10ªed. E comprei recentemente outro, o Use a Cabeça sobre Linguagem C. Se tiverem algumas sugestões de livros, sites ou artigos para me ajudar, também agradeço!
  3. Eu mesmo já resolvi o problema. Era a resposta que eu achei mesmo, o sistema não estava sabendo aonde alocar o valor gerado pela função scanf() e acabava parando de responder por causa disso. O problema estava na falta do & pra chamar a variável atribuída a função scanf(). Eu não localizei esse erro antes, por que antes, quando eu errava assim, o sistema não reagia dessa forma - parando de responder - ele apenas dava como resposta o valor 0 (falso).
  4. Olá! Eu comecei bem recentemente a ler sobre a linguagem C e estou criando alguns programas que o livro pediu como exercício. Como compilador, eu estou atualmente usando o Code::Blocks 13.12. Usava antes o DEV C++, porém o mesmo começou a fazer o programa que eu criava parar de ser executado quando eu colocava a função scanf() e ia inserir o valor. Reinstalei ele 3 vezes, em versões diferentes, não resolveu. Tentei usar o Visual Studios C++, mesmo problema, enfim... Eu fiz um programa para achar os múltiplos de um número informado pelo usuário, dentro de um intervalo também informado pelo usuário. Porém, quando insiro o primeiro valor, o compilado dá o erro: program received signal sigsegv segmentation fault. Vou mostrar o programa que eu criei para ver se tem algum erro nele, fui ler sobre o erro, mas aonde li informava que era algo relacionado a ponteiros e o programa ir buscar memória fora do limite estipulado... mas esse programa, como vocês verão, não necessita de ponteiros (eu sequer sei usar ponteiros ainda). #include <stdio.h> int main () { int numInicio; int numFinal; int numMultiplo; do { printf("###Programa para calcular a quantidade de multiplos dentro do intervalo informado.###\n"); printf("Para parar o programa, insira <ZERO> no primeiro valor.\n"); printf("Digite o numero inicial do intervalo: "); scanf("%d", &numInicio); printf("\nDigite o numero final do intervalo: "); scanf(" %d", &numFinal); printf("\nDigite o multiplo a ser utilizado nos calculos."); scanf(" %d", &numMultiplo); for (numInicio; numInicio < numFinal; numInicio++) if(numInicio > numFinal) printf("\nErro: o primeiro numero não pode ser maior que o segundo. Tente novamente."); else if(numInicio % 5 != 0) continue; else printf("\n\t%i", numInicio); } while (numInicio == 0); } Vale salientar que eu sequer testei o programa para verificar se ele realmente está parando quando se insere o valor <ZERO> e também que eu reconheço que estou bastante repetitivo na minha escrita, mas estou fazendo assim no início para ficar mais legível para mim, já que ainda não entendo bem a linguagem. Obrigado pela atenção!
×
×
  • Criar Novo...