Ir ao conteúdo
  • Cadastre-se

rafael_carmo

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

Reputação

11
  1. No programa o texto aparece assim (eu usei adobe acrobat): Quando eu colo no outro programa (neste caso devc++) aparece assim: Fac¸a um programa que leia um n´umero indeterminado de idades de indiv´ıduos (pare quando for informada a idade 0), e calcule a idade m´edia desse grupo. Eu não faço ideia do porque isso está acontecendo. Alguém poderia me explicar como resolver isso? Por favor!
  2. @devair1010 Obrigado por ajudar! Eu acredito que foi minha falta de atenção mesmo e por isso não percebi que estava declarando a variável de um tipo e declarando ela em um tipo diferente na hora de imprimir. Só mais uma perguntinha: Teve alguma razão específica para você ter formatado a impressão dessa maneira? printf("\nA soma é igual %7.2f\n\n",soma); Se eu tive usado dessa maneira estaria errado? printf("\nA soma é igual %.2f\n\n",soma);
  3. Questão: Um número triangular é um número natural que pode ser representado na forma de triângulo equilátero. Foi desenvolvido por Gauss em 1788 quando ele tinha apenas 10 anos. Para encontrar o n­ésimo número triangular a partir do anterior basta somar­lhe n unidades. Os primeiros 5 números triangulares são: ∙ 1 = 1 ∙ 3 = 1+2 ∙ 6 = 1+ 2+ 3 ∙ 10 = 1+2+3+4 ∙ 15 = 1+2+3+4+5 Escreva um programa em C que calcule a soma dos recíprocos dos números triangulares para N termos, onde N é uma entrada para o programa em questão. S=1/1+1/3+1/6+1/10+1/15+... Meu código: #include <stdio.h> // Funções de entrada e saída #include <stdlib.h> // Função padrão #include <locale.h> // Habilita o uso de acentuação em palavras // Adicionar novas bibliotecas acima de acordo com necessidade /* // Espaço destinado a transcrição do enunciado para não ficar olhando toda hora a lista Um número triangular é um número natural que pode ser representado na forma de triângulo equilátero. Foi desenvolvido por Gauss em 1788 quando ele tinha apenas 10 anos. Para encontrar o n­ésimo número triangular a partir do anterior basta somar­lhe n unidades. Os primeiros 5 números triangulares são: ∙ 1 = 1 ∙ 3 = 1+2 ∙ 6 = 1+ 2+ 3 ∙ 10 = 1+2+3+4 ∙ 15 = 1+2+3+4+5 Escreva um programa em C que calcule a soma dos recíprocos dos números triangulares para N termos, onde N é uma entrada para o programa em questão. S=1/1+1/3+1/6+1/10+1/15+... */ int main() // Função obrigatória { /* Declaração de constantes ou variáveis */ int a,b,qtd,limite; float soma; //Inicializando a variável a = 1; b = 1; qtd = 0; soma = 0; /* Fim */ /* Entrada de dados */ setlocale(LC_ALL,"pt-BR"); printf("Digite a quantidade de termos:"); scanf("%d",&limite); // Solicita que o usuário que entre com algum dado qualquer /* Fim */ while(b<32767){ qtd = qtd + 1; if(qtd<=limite){ soma = soma + 1.0/b; } b = (a+1) + b; a++; } /* Saida de dados */ printf("\nA soma é igual %d",soma); // Exibe mensagem na tela system("PAUSE"); // Apenas no Windows return 0; // Pausa o programa para que ele não feche inesperadamente assim como o comando "getchar();" } // Fim Tentei me basear neste vídeo: Minha saída:
  4. @arfneto Eu solucionei assim: #include <stdio.h> // Funções de entrada e saída #include <stdlib.h> // Função padrão #include <locale.h> // Habilita o uso de acentuação em palavras // Adicionar novas bibliotecas acima de acordo com necessidade /* // Espaço destinado a transcrição do enunciado para não ficar olhando toda hora a lista Escreva um programa que ordene um array de inteiros de 15 posições utilizando o método da bolha (bubble sort). */ int main() // Função obrigatória { /* Declaração de constantes ou variáveis */ int tam; tam = 15; int vetor[tam],i,j,auxiliar; /* Fim */ /* Entrada de dados */ setlocale(LC_ALL,"pt-BR"); //Adicionando elementos a vetor de i posições for(i=0;i<tam;i++){ printf("Digite um valor:"); scanf("%d",&vetor[i]); } // Solicita que o usuário que entre com algum dado qualquer //Imprime o vetor antes da ordenação printf("Antes da ordenação:\n"); for(i = 0;i<tam;i++){ if(i<4){ printf("{%d},",vetor[i]); }else{ printf("{%d}",vetor[i]); } } //Exercuta n vezes mesmo se o vetor já tiver ordenado for(j=1;j<=tam;j++){ //Possibila que as exercuções de ordenação aconteça n vezes //Compara e ordena até o penúltimo elemento já que o elemento seguinte não terá com quem ser comparado for(i=0;i<tam-1;i++){ //Ordenando o vetor if(vetor[i]>vetor[i+1]){ auxiliar = vetor[i]; //Guarda a copia do elemento na posição i vetor[i] = vetor[i+1];// O que antes tinha maior valor recebe o valor da posição seguinte vetor[i+1] = auxiliar;// O que antes tinha o valor menor recebe o valor da posição anterior } } } /* Saida de dados */ //Imprime o vetor após a ordenação printf("\nDepois da ordenação:\n"); for(i = 0;i<tam;i++){ if(i<tam - 1){ printf("{%d},",vetor[i]); }else{ printf("{%d}",vetor[i]); } } // Exibe mensagem na tela /* Fim */ return 0; // Pausa o programa para que ele não feche inesperadamente assim como o comando "getchar();" } // Fim
  5. @arfneto Eu fui seguindo passo a passo um vídeo que vi no Youtube o professor ensinando e escrevi o código realizando umas modificações. Até então mesmo sem saber como funciona uma uma função em C continuei mesmo assim prosseguindo em programar. O que eu não sabia imitava o que ele estava fazendo. O que eu sabia eu mesmo escrevia que foi minhas modificações. Mesmo seguindo o passo a passo meu algoritmo no final não funcionou. Não retornava -1 quando não encontrava o elemento no vetor e também não retornava nada quando eu buscava um elemento que existia nele. Para finalizar eu lhe faço uma última pergunta pelo menos é o que acredito que vai ser: É possível fazer o algoritmo de bubble sort para ordenar vetores sem usar função ou é obrigatório? @arfneto Eu só me dei conta agora que eu usava essa biblioteca de maneira errada. Eu nunca tinha parado ver detalhes sobre isso. Eu vi agora que você precisa colocar uma informação a mais. Ao invés de "setlocale(LC_ALL," ");" é na verdade setlocale(LC_ALL,"pt-BR"); Obrigado por me alertar a dar uma lida na documentação!
  6. @arfneto Eu não aprendi ainda a usar função e procedimentos em C. Então eu estou usando o que aprendi até aqui. foi estrutura sequencial até vetores. Eu não faço a mínima ideia de por onde vai.
  7. @arfneto O que eu devo usar no lugar do "system("PAUSE");"? Eu deixo só um "return 0;" no final do programa? ou acrescento "return 0;" com alguma coisa a mais? ;
  8. Meu código: Eu alterei o tamanho vetor para não ter que digitar tantos números. Se dê certo para uma quantidade menor de posições dará também certo para um vetor de 15 posições. #include <stdio.h> // Funções de entrada e saída #include <stdlib.h> // Função padrão #include <locale.h> // Habilita o uso de acentuação em palavras // Adicionar novas bibliotecas acima de acordo com necessidade /* // Espaço destinado a transcrição do enunciado para não ficar olhando toda hora a lista Escreva um programa que ordene um array de inteiros de 15 posições utilizando o método da bolha (bubble sort). */ int main() // Função obrigatória { /* Declaração de constantes ou variáveis */ int vetor[5],i,j,auxiliar; /* Fim */ /* Entrada de dados */ setlocale(LC_ALL,""); //Adicionando elementos a vetor de i posições for(i=0;i<5;i++){ printf("Digite um valor:"); scanf("%d",&vetor[i]); } printf("Antes da ordenação:\n"); for(i = 0;i<5;i++){ if(i<4){ printf("{%d},",vetor[i]); }else{ printf("{%d}",vetor[i]); } } //Exercuta n vezes mesmo se o vetor já tiver ordenado for(j=1;j<=5;i++){ //Possibila que as exercuções de ordenação aconteça n vezes //Compara e ordena até o penúltimo elemento já que o elemento seguinte não terá com quem ser comparado for(i=0;i<5-1;i++){ //Ordenando o vetor if(vetor[i]>vetor[i+1]){ auxiliar = vetor[i]; //Guarda a copia do elemento na posição i vetor[i] = vetor[i+1];// Transfere o valor do menor para o que guarda o maior vetor[i+1] = auxiliar;// O que antes tinha o valor menor recebe o valor maior } } } // Solicita que o usuário que entre com algum dado qualquer /* Saida de dados */ printf("\nDepois da ordenação:"); for(i = 0;i<5;i++){ if(i<4){ printf("{%d},",vetor[i]); }else{ printf("{%d}",vetor[i]); } } // Exibe mensagem na tela /* Fim */ system("PAUSE"); // Apenas no Windows return 0; // Pausa o programa para que ele não feche inesperadamente assim como o comando "getchar();" } // Fim Minha saída:
  9. Meu código: Eu usei busca binária interativa para encontrar um valor n dentro do meu vetor[10] #include <stdio.h> // Funções de entrada e saída #include <stdlib.h> // Função padrão #include <locale.h> // Habilita o uso de acentuação em palavras // Adicionar novas bibliotecas acima de acordo com necessidade /* // Espaço destinado a transcrição do enunciado para não ficar olhando toda hora a lista Escreva um programa que leia um vetor de 10 posições ordenados de inteiros e um inteiro. O programa deve informar a primeira posição onde este inteiro ocorre no vetor ou -1 caso o valor não ocorra no vetor (Busca Binária). */ int buscabinariainterativa(int *vetor,int chave,int fim){ int inicio = 0; int meio = (inicio + fim)/2; while(inicio<=fim){ if(chave == vetor[meio]){ return meio; }else{ if(chave < vetor[meio]){ fim = meio - 1; }else{ inicio = meio + 1; } } } return -1; } int main() // Função obrigatória { /* Declaração de constantes ou variáveis */ int vetor[10],n,i; /* Fim */ /* Entrada de dados */ for(i = 0;i<10;i++){ setlocale(LC_ALL,""); printf("Digite %dº valor:",i+1); scanf("%d",&vetor[i]); } // Solicita que o usuário que entre com algum dado qualquer do{ printf("Digite o valor a ser buscado:"); scanf("%d",&n); //Buscando o valor usando busca binária interativa /* Saida de dados */ printf("%d na posição %d",n,buscabinariainterativa(vetor,n,9)); // Exibe mensagem na tela }while(n!=0); /* Fim */ system("PAUSE"); // Apenas no Windows return 0; // Pausa o programa para que ele não feche inesperadamente assim como o comando "getchar();" } // Fim O que apresenta como resultado: Note que não retorna -1 quando não encontra o valor. Também já tentei com um valor que já foi adicionado no vetor.
  10. Meu código: #include <stdio.h> // Funções de entrada e saída #include <stdlib.h> // Função padrão // Adicionar novas bibliotecas acima de acordo com necessidade /* // Espaço destinado a transcrição do enunciado para não ficar olhando toda hora a lista Faça um programa em C que copie o conteúdo de um vetor de 10 posições de inteiro em um segundo vetor e imprima este último. */ int main() // Função obrigatória { /* Declaração de constantes ou variáveis */ int vetor1[10] = {10,9,8,7,6,5,4,3,2,1}; int vetor2[10]; int i; /* Fim */ for(i=0;i<=9;i++){ //Copiando o vetor1 para o vetor2 vetor2[i] = vetor1[i]; i++; } /* Fim */ /* Saida de dados */ for(i=0;i<10;i++){ printf("\nVetor2[%d] = %d",i,vetor2[i]); } // Exibe mensagem na tela system("PAUSE"); // Apenas no Windows return 0; // Pausa o programa para que ele não feche inesperadamente assim como o comando "getchar();" } // Fim O erro: Note que apenas as posições de índices pares (0,2,4,6,8 ) está aparecendo realmente os valores que foram copiado do vetor original vetor1[10] = {10,9,8,7,6,5,4,3,2,1} em posição equivalente. Nas posições de índices (1,3,5,7,9) está aparecendo valores aleatórios como mostrado abaixo: (Eu não consigo de jeito nenhum corrigir o erro)

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!