![](https://www.clubedohardware.com.br/uploads/themes/set_resources_52/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
carlos20030
-
Posts
13 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por carlos20030
-
-
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.
-
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.
-
1
-
-
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.
-
1
-
-
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.
-
1
-
-
agora, devair1010 disse:
Já havia tentado. Tentei ler com fgets também e os caracteres estranhos continuam a aparecer.
-
1
-
-
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çãoDigite 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-
1
-
-
O código corrigido que você mandou compila sem erros, porém não executa.
-
1
-
-
Realmente não há nenhuma forma de fazer isto?
-
1
-
-
@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").
-
1
-
-
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.
-
1
-
-
O caso é geral, não são somente esses exemplos.
CitaçãoEnfim, 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.
-
1
-
-
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)
X 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.
-
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
Função de operações em C
em C/C#/C++
Postado
@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.