Ir ao conteúdo
  • Cadastre-se

carlos20030

Membro Júnior
  • Posts

    13
  • Cadastrado em

  • Última visita

posts postados por carlos20030

  1. @TYSQUARE89 , obrigado pela resposta. Agora digamos que eu não tenha mais que verificar que o programa seja ímpar, e sim se ele é múltiplo de 5 (if(r % 5 == 0) e que o número que seria o padrão (no caso, o número padrão do problema principal era 10) mudaria em algumas situações. Você poderia me ensinar como adequar o código ao número que eu quero? Por exemplo se fosse 42 (lógico que as operações mudariam). Como eu poderia modificar o código segundo a sua lógica para que o resultado continuasse a dar certo?

     

    Att.

  2. Olá,

     

    Tenho um problema que devo criar uma função recursiva em C que faça o seguinte:

    - Dado um número inteiro e positivo como entrada, através das 3 operações abaixo eu devo retornar se através destas operações eu consigo chegar no valor exato de 10.

    Operações:

    1) Se for par divide por 2;

    2) Se for ímpar diminui 15;

    3) Se for múltiplo de 7 diminui 5;

     

    Exemplos de execução:

     

     


    Entrada: 45

    Op 2 -> 45 - 15 = 30

    Op 1 -> 30/2 = 15

    Op 2 -> 15 - 15 = 0

     

    Retorno: Não possível

     

    Entrada: 50

    Op 1 -> 50/2 = 25

    Op 2 -> 25 - 15 = 10

     

    Retorno: É possível

     

    Entrada: 35

    Op 2 -> 35 - 15 = 20

    Op 1 -> 20/2 = 10

     

    Retorno: É possível

     

    OU

     

    Op 3 -> 35 - 5 = 30

    Op 1 - > 30/2 = 15

    Op 2 - > 15 - 15 = 0

     

    Retorno: Não é possivel

    Note que para esse exemplo o número 35 é impar e multiplo de 7, ou seja, eu posso tomar qualquer caminho (escolher qualquer uma das operações), se um desses caminhos der certo, então eu retorno que é possível.
     

     

     

    Eu tenho o seguinte protótipo da função, mas obviamente não está dando certo:
     

    int resta10(int n){
        
        int  r = 0;
        
        if(n == 10)
            return 1;
        else if(n < 10)
            return n;
          else{
    
              if(n % 2 == 0){
                n = n/2;
                r = resta10(n);
                if(r == 1)
                    return 1;
                else
                    n = r*2;
            }
    
    
            if(n % 2 != 0){
                n = n-15;
            
                r = resta10(n);
                if(r == 1)
                    return 1;
                else
                    n = r+15;
            }
            if(n % 7 == 0){
                n = n - 5;
                r = resta10(n);
                if(r == 1)
                    return 1;
                else
                    n = r+5;
            }
    
            return n;       
        }  
    }

    Obs: Considere retorno 1 como "possível" e outros como "impossível".

    Att.

  3. 2 minutos atrás, devair1010 disse:

    @carlos20030    para ordenar com bubblesort você precisa usar dois loop um dentro do outro para testar o número e já trocar ele de posição caso seja necessário e não precisa ver o menor valor da linha já que você vai trocar é exatamente a linha e na mesma coluna .  então ali onde você colocou coluna 1 está certo , falta apenas o outro loop .

    Eu não estou conseguindo visualizar o que você diz :(

    Veja, quando eu encontra o menor valor da coluna 1 de toda a matriz, eu tenho que levar todas as informações desta linha para o começo, e assim sucessivamente.

     

    Ex: tenho duas linhas:

    2 100 1

    3   2   0

     

    Observe que como "2" < "100", toda a linha que contém o 2 deve ir para o lugar da linha 100...

    3   2   0

    2 100 1

     

    E assim sucessivamente.

    • Curtir 1
  4. Olá, aqui está a base do código:

    #include <stdio.h>
    
    int main(){
    	int matriz[3][3];
    	int i, j, menorValor;
    	
    	/* Lendo a matriz */
    	for(i = 0; i < 3; i++){
    		for(j = 0; j < 3; j++){
    			scanf("%d", matriz[i][j]);
    		}
    	}
    	
    	/* Ordenando as linhas de acordo com a ordem crescente da coluna 1 (ou 2 como no exemplo do topico) */
    	menorValor = matriz[i][1];
    		for(i = 0; i < 3; i++){
    			if(matriz[i][1] < menorValor){
    				menorValor = matriz[i][1];
    				
    			}
    		}
    	
    	return 0;
    }

    Ainda estou travado no raciocinio, porque eu preciso pegar todas as informações da linha que contém a coluna com o menor valor e trocar com a outra linha (por isso não entendo como posso usar o bubble, pois eu preciso pegar todas as informações da linha).

     

    Obs: fiz 3x3 como exemplo, a matriz pode ter várias linhas mas apenas 3 colunas.

    Att.

    • Curtir 1
  5. Olá,

     

    Eu tenho uma matriz de i linhas x 3 colunas de números inteiros. Por exemplo:

    LINHA 0: 3 2 0

    LINHA 1: 2 7 1

    LINHA 2: 3 5 2

     

    Eu gostaria de ajuda para ordenar essa matriz em ordem crescente da segunda coluna (em vermelho). Ficando assim ao final:

    LINHA 0: 3 2 0

    LINHA 1: 3 5 2

    LINHA 2: 2 7 1

     

    Se alguém puder pelo menos me clarear a ideia, eu planejo e código e já posto aqui para discutirmos a resolução.

    Att.

    • Curtir 1
  6. Eu uso o dev em sua versão mais atualizada. Eu consegui executá-lo setando as variáveis j e k para zero lá no inicio do programa, mas o resultado está saindo com alguns caracteres especiais:
     

    Citação

     

    Digite Uma Frase De No Maximo 50 Caracteres:ola mundo

    O Texto Teve 2 Palavras

    O Que Esta Armazenado Na Posicao 0 Do Vetor => ola±w
    O Que Esta Armazenado Na Posicao 1 Do Vetor => mundo
    ìn

     

     

    • Curtir 1
  7. @devair1010 Do jeito que você falou, eu tentei o seguinte:

    #include <stdio.h>
    #include <string.h>
    
    int main(){
    	
    	char string[100], vetor[100];
    	int i,j = 0;
    	
    	fgets(string, 10000, stdin);
    	for(i = 0; i < strlen(string); i++){
    		if(string[i] == ' '){
    			j++;
    		}else{
    			vetor[j] = string[i];
    		}
    	}
    	
    
     	printf("%c", vetor[0]);
    	
    	return 0;
    }

    Porém, ao acessar a posição 0 do vetor,  da frase "ola mundo", ele imprime somente "a" (quando deveria imprimir a primeira palavra que eu digitei "ola").

    • Curtir 1
  8. Olá,

     

    Gostaria de saber como posso separar as palavras de uma frase lida e armazená-las em outro vetor. Ex:

    1) Li uma string de determinado tamanho:

    "Eu fui ao baile"

    2) Agora separo a frase em 4 palavras e armazeno em um vetor qualquer:

    vetor[0] = Eu
    vetor[1] = fui
    vetor[2] = ao
    vetor[3] = baile

    Só posso utilizar funções presentes na string.h e não posso utilizar ponteiros.

     

    Att.

    • Curtir 1
  9. O caso é geral, não são somente esses exemplos.

    Citação

    Enfim, use um for e conte quantas bolinhas estão sendo encontradas na linha, caso forme uma sequência você imprime a mensagem na tela. Caso contrário continue na próxima linha e zere os contadores.

    Eu preciso determinar quantas sequências totais de bolinhas eu tenho e ao final dar somente uma resposta como saída. Deste modo que você citou eu faria:

    X O O X X X O (contei 3 bolinhas e 2 "sequências", considerando apenas uma linha)

     

    Agora digamos que a linha de baixo seja isso:

    X O O X X X O (contei 3 bolinhas e 2 "sequências", considerando apenas uma linha e zerei os contadores)

    O X X X O X X (contei 2 bolinhas e teoricamente 2 "sequências")

     

    Então ao final eu teria 4 sequências, quando a resposta correta seriam 3 sequências (observe em colorido).

    Ps: considere uma bolinha sozinha como "sequência", por isso as aspas.

    • Curtir 1
  10. Olá,

     

    O meu problema é o seguinte:

    Eu recebo uma matriz com y linhas e z colunas com "X" e "O". Exemplo:

    Matriz(4x4)

    X O O X

    X X X X

    O X X X

    X X X X

     

    E devo devolver quantas sequências de bolinhas eu possuo na matriz. No exemplo acima e abaixo (em negrito) temos duas.

    Matriz (4x3)

    O X

    X  X O

    O X X

    X O O

     

    Eu pensei em usar ifs para verificar todas as linhas e colunas nas oito direções possíveis de um elemento [y][z] da matriz, mas me parece muito complicado. Alguém tem alguma ideia?

    Att.

    • Triste 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!