none
Código c - Dúvida em Algoritmo RRS feed

  • Pergunta

  • Bom dia, sou iniciante em linguagem c, e gostaria de ajuda com esse código.

    Enunciado : Escreva um programa que irá ler uma linha de caracteres do teclado e imprima quantas vezes um caractere, também fornecido pelo teclado, aparece nesta linha. O programa também deve imprimir em que posições o caractere foi encontrado.

    Eu só consegui até aqui, alguém pode me dar uma luz ?


    Minha dificuldade é como eu faço para imprimir as posições no caso de mais de um caractere igual, como mostra acima.

    Segue o código :

    #include<stdio.h>
    #include<string.h>
    
    int main (void)
    {
    
    	char frase[100], caractere;
    	int i, tamanho = 0, total = 0, posicao;
    	
    	printf("\n Digite algo : ");
    	gets (frase);
    	
    	printf("\n Informe o caracter que deseja verificar : ");
    	scanf("%c", &caractere);	
    		
    	total = strlen(frase);
    
    	for(i = 0; i < total; i++)
    	{	
    		if(frase[i] == caractere)
    		{
    			tamanho++;
    			posicao = i;
    		}
    	}	
    
    	printf("\n Total do caractere : %d \n Posição [%d]: ", tamanho, posicao);
    	
    	return 0;
    }

    sábado, 14 de dezembro de 2013 13:54

Respostas

  • char frase[100], caractere[100];
    int i, tamanho = 0, total = 0;
    int posicao[100], p = -1;
    
    printf("\n Digite algo : ");
    gets(frase);
    
    printf("\n Informe o caracter que deseja verificar : ");
    gets(caractere);
    
    total = strlen(frase);
    
    for (i = 0; i < total; i++)
    {
    	if (frase[i] == caractere[0])
    	{
    		tamanho++;
    		posicao[++p] = (i + 1);
    	}
    }
    
    printf("\n Total do caractere : %d ", tamanho);
    //Assim 
    /*for (i = 0; i <= p; i++)
    {
    	printf("\n  Posicao: [%d]", posicao[i]);
    }*/
    //Ou
    printf("\n Posicao: ");
    for (i = 0; i <= p; i++)
    {
    	if (i > 0){
    		printf(",");
    	}
    	printf("[");
    	printf("%d", posicao[i]);
    	printf("]");
    }

    Eu mudei algumas variáveis e coloque duas formas de visualização!

    Escolha a melhor que lhe agrade ... (é só tirar o comentário de linha)


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta renatafx domingo, 15 de dezembro de 2013 02:53
    domingo, 15 de dezembro de 2013 00:50

Todas as Respostas

  • char frase[100], caractere[100];
    int i, tamanho = 0, total = 0;
    int posicao[100], p = -1;
    
    printf("\n Digite algo : ");
    gets(frase);
    
    printf("\n Informe o caracter que deseja verificar : ");
    gets(caractere);
    
    total = strlen(frase);
    
    for (i = 0; i < total; i++)
    {
    	if (frase[i] == caractere[0])
    	{
    		tamanho++;
    		posicao[++p] = (i + 1);
    	}
    }
    
    printf("\n Total do caractere : %d ", tamanho);
    //Assim 
    /*for (i = 0; i <= p; i++)
    {
    	printf("\n  Posicao: [%d]", posicao[i]);
    }*/
    //Ou
    printf("\n Posicao: ");
    for (i = 0; i <= p; i++)
    {
    	if (i > 0){
    		printf(",");
    	}
    	printf("[");
    	printf("%d", posicao[i]);
    	printf("]");
    }

    Eu mudei algumas variáveis e coloque duas formas de visualização!

    Escolha a melhor que lhe agrade ... (é só tirar o comentário de linha)


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta renatafx domingo, 15 de dezembro de 2013 02:53
    domingo, 15 de dezembro de 2013 00:50
  • Muito obrigada Fúlvio, me ajudou muito !
    domingo, 15 de dezembro de 2013 02:55