Ir ao conteúdo
  • Cadastre-se

Estudante0123

Membro Pleno
  • Posts

    44
  • Cadastrado em

  • Última visita

Reputação

30
  1. Pensei em fazer uma busca pela matriz, quando encontrar um 0 ir verificando aos lados ate quando tem o 0. Depois voltar e ao primeiro zero encontrado e ir verificando em baixo. if (m[i][j] == 0){ //encontrou um 0 achou++; while ((j+1 < n_cols && m[i][j+1] == 0) || (i+1 < n_rows && m[i+1][j] == 0)){ //se houver 0 adjacente while (m[i][j+1] == 0 && j+1 < n_rows){ //verificando 0 ao lado achou ++; printf ("Primerio while m[%d] [%d]\n", i, j); i++; int aux_j = j; while (aux_j < n_cols && m[i][aux_j ] == 0) { achou ++; printf ("Segundo while m[%d] [%d]\n", i, aux_j); aux_j++; } //while } //while } // while 1 adjacente } //if encontrou 1 Mas essa linha ainda tem muitos furos. Um esboço do que consegui, onde os printfs são apenas para me localizar. Nesse caso, estou tentando primeiro fazer a logica de reconhecer os conjuntos
  2. Ola, tenho uma matriz bidemensional, e quero saber quantos conjuntos de elementos adjacentes (em cima, baixo e lados) iguais a zero eu tenho nela. Exe 1 2 3 0 0 0 4 5 6 0 1 1 1 3 4 5 6 7 0 0 1 1 2 3 Nesse caso tenho dois conjuntos. Estou com dificuldades em pensar na funcao para fazer isso, pensei em faze la ler a matriz e quando encontrar um 0 entrar em uma condicao, mas não tenho muita mais nocao de como prosseguir
  3. @MB_ ah, sim, perdão. É de n até 0 e depois de 0 até n, sendo a saída da seguinte forma: n(n − 1). . . 00 . . .(n − 2)(n − 1)n Infelizmente não tenho mais o enunciado, mas acho que agora está tudo certo
  4. Tenho uma duvida em um exercicio de recursividade. Ele pede para dado um numero n>0, imprimir n-1 ate 0 e depois ir de 0 ate n. Por exemplo n=5 deve retornar 543210012345. Consegui fazer com que imprima ate 543210, mas não sei mais como prosseguir. A baixo parte da funcao que eu consegui ate agora if (n > 0){ printf ("%d", n); return recurssiva(n-1); } else if (n == 0){ printf ("%d", n);}
  5. Ola, gostaria de saber como faco para a partir de double a e double b, tranforma- los em uma string ( a, b) em c++, por favor
  6. Estou iniciando os estudos com funções que modificam matrizes. Construí o seguinte código, mas ao compilar, ele trava, e não estou conseguindo identificar o problema, e nem se teria outra forma mais fácil de faze-lo #include <stdio.h> int obter_valor (int valor) { scanf ("%d", &valor); return valor; } void criar_matriz (int linha, int coluna, int **pont){ for (int i = 0; i < linha; i++){ for (int j = 0; j < coluna; j++){ scanf("%d", &pont[i][j]); } } } void escrever_matriz (int linha, int coluna, int **p) { for (int i = 0; i < linha; i++) { for (int j = 0; j < coluna; j++) { printf ("[%d] [%d] = [%d]\n",i,j, p[i][j]); } } } int main () { int linha = obter_valor (linha); int coluna = obter_valor (coluna); int matriz [linha] [coluna]; int **ponteiro = matriz; criar_matriz (linha, coluna, ponteiro); escrever_matriz (linha, coluna, ponteiro); return 0; }
  7. Tenho um programa que, dado um vetor no main, ele precisa ter uma funcao para criar esse vetor. Posteriormente esse vetor vai ser utilizado e o seu tamanho tambem, por isso é importante guarda-los. Pensei no seguinte esquema void vetor (int *ponteiro, int *pont){ int tamanho; scanf ("%d", &tamanho); *pont = tamanho; for (int i =0; i < tamanho; i++){ scanf ("%d", &ponteiro[i]); } } int main (){ int vet_1[50]; int tamanho_1; int *pont_tamanho_1; int *pont_1 = vet_1; funcao_criar_vetor(pont_1, pont_tamanho_1); Mas ao receber o primeiro numero, que seria o tamanho, ele trava. Algum palpite de qual a solucao?
  8. Tenho dois vetores, em ordem crescente cada um, e preciso coloca-los em um terceiro vetor, que ao final esteja tambem em ordenado em ordem crescente. Fiz essa solucao abaixo, mas em alguns casos ela falha, e em outros funciona. A falha vem quando sao dois vetores de iguais tamanho, mas o primeiro e todo composto de um numero e o segundo de outros numeros. Ex vet_1 [2,2,2] e vet_2 [1,4,5] da erro for (int i =0; i < tamanho_3; i++){ if (vet_1 [j] < vet_2 [k]){ vet_3[i] = vet_1 [j]; j++; } else { vet_3[i]= vet_2[k]; k++; } }
  9. Ola, tenho uma lista para calculo. Toda vez que aparece um numero Z inteiro, ele é seguido por Z (x,y) reais. Para cada Z ha um jeito de manipular os pares (x,y), mas não vem ao caso. Pensei em fazer um laço de repeticão para entrar em cada possibilidade de Z, mas não sei ao certo como fazer isso. Posso fazer if ( z == int) ? Um exemplo de entrada seria 4 3 5 4.5 7 5 6 9.1 2.3 2 2.4 6 4 7.2 No caso, ele teria que identificar que os quatro pares depois do 4 seriam um caso, e os dois apos o 2 outro caso.
  10. Gostaria de saber como eu faço para receber e guardar uma sequencia que eu não sei o comprimento. O exercicio pede o seguinte: "Calcular a apresentar quantos numeros existem em uma sequencia. A priori não se sabe o comprimento nem existe um valor sentinela"
  11. #include <stdio.h> int main (){ // Receber texto char texto , caractere; int i = 0; do { caractere = getchar (); texto = caractere; i++; } while ( caractere != "13") //imprimir texto printf ("%s", texto); retur 0; } O exercicio pede para que o programa suporte diferentes tipos de strings, com tamanhos diferentes. Modifiquei a principio e consegui chegar até ai. Contudo os casos de testes utilizam textos com varias linhas ( os testes são inseridos utilizando ctrl v), então não posso colocar um while ( caractere != '\n') ; como limitador, mas também não sei como prosseguir
  12. Ainda sim não vai. Pensei em fazer da seguinte forma char texto , caractere; int i = 0; do { caractere = getchar (); texto[i] = caractere; i++; } while ( caractere != 13) ; Mas preciso fazer diferentes tipos de teste, com vetores de tamanhos diferentes, então não posso limitar ele. O que quero dizer é que tenho teste de texto [10], assim como text [100], e o programa deveria lidar bem com todos os teste
  13. @Leonardo0308 Fiz a modificação, mas ainda sim não deu certo
  14. Olá, estou fazendo em partes um codigo. A primeira parte deverá receber, pelo teclado, um texto. Pensei em fazer dessa forma mais simples: char texto; printf ("Insira seu texto: "); scanf ("%s", &texto); printf ("%s", texto); Mas só captura a primeira linha do texto, onde posso estar errando? Obrigado.
  15. Olá, quero saber como eu posso justificar uma linha em C, da seguinte forma: para cada linha, eu quero determinar uma justificativa, e se essa linha não tem o numero de caracteres suficiente para essa justificativa, o programa insere espaços entre as palavras. Exemplo: Justificativa=20 Hello World (antes, apenas 11 caracteres) Hello World (depois, contando com os espaçamentos, 20 caracteres)

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