Ir para conteúdo
Fórum Script Brasil

Felipe Nóbrega

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Posts postados por Felipe Nóbrega

  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...