×
Ir ao conteúdo
  • Cadastre-se

immoraesz

Membro Júnior
  • Posts

    16
  • Cadastrado em

  • Última visita

  • Qualificações

    0%
  1. Fazer um programa para ler uma string e transferir as consoantes para um vetor e as vogais para outro. Ao final, imprima cada um dos vetores. #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <string.h> int main(){ char frase[20], vogal[20], consoante[20]; int j, k, tam, v = 0, c = 0; fflush(stdin); fgets(frase, 20, stdin); tam=strlen(frase); for(j=0;j<tam;j++){ if(toupper(frase[j])=='A'||toupper(frase[j])=='E'|| toupper(frase[j])=='I'||toupper(frase[j])=='O'|| toupper(frase[j])=='U') { vogal[v++] = frase[j];/*acessa a posição e depois incrementa a variável*/ } else{ k=(int)frase[j]; /* pega o código ascii do caractere */ if( k > 64 || k < 91 ||/* letras maiúsculas */ k > 96 || k < 123 )/* letras minúsculas*/ consoante[c++]=frase[j]; } } vogal[v++]='\0'; consoante[c++]='\0'; printf("Vetor de vogais: "); for(v=0;v<tam;v++) { if(vogal[v]=='\0')break; printf("%c",vogal[v]); } printf("\nVetor de consoantes: "); for(c=0;c<tam;c++) { if(consoante[c]=='\0')break; printf("%c",consoante[c]); } return 0; } O programa realiza tudo certinho, mas se for mais de uma palavra (ex. Hello World) fica: Vetor de vogais: eoo Vetor de consoantes: Hll Wrld O vetor das consoantes deveria ficar: HllWrld (sem o espaço entre as palavras). Help.
  2. A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, armazenando o salário e o número de filhos de cada entrevistado. A prefeitura deseja saber: a. média do salário da população; b. média do número de filhos; c. percentual de pessoas com salário até R$1000,00; Faça um programa que leia os dados e, ao final, exiba os resultados solicitados. A leitura de dados será encerrada com a entrada de um salário negativo. #include <stdio.h> #include <stdlib.h> int main(){ int i = 0, j = 0, filhos = 0, somaF = 0; float salario = 0, somaS = 0, mediaS = 0, mediaF = 0, percentual = 0, somaP = 0; while(salario >= 0){ scanf("%f", &salario); scanf("%d", &filhos); if(salario <= 1000){ somaP = somaP + salario; i++; } somaS = somaS + salario; somaF = somaF + filhos; j++; } mediaS = somaS / j; mediaF = somaF / j; percentual = ((i * 100) / (j)); printf("%.2f\n", mediaS); printf("%.2f\n", mediaF); printf("%.2f%%", percentual); return 0; } Acredito que estou fazendo somente a acumulação e contas erradas. Preciso de ajuda para arrumar esse programa.
  3. @JorgeGus Valeu, patrão! Salvou!
  4. @.if Já tentei substituir o fgets(vendedor, 20, stdin) por gets(vendedor), mas o programa da erro assim.
  5. O programa está correto, porém no printf que mostra o nome do vendedor + salário com adição do bônus está tendo uma quebra de linha inesperada. Deveria aparecer: O salario de Amanda sera de R$ 75000.00 Está aparecendo: O salario de Amanda sera de R$ 75000.00 Como resolvo esse problema? #include <string.h> int main(){ float salario, bonus, total, adicional; char vendedor[20]; fgets( vendedor, 20, stdin); scanf("%f", &salario); scanf("%f", &bonus); adicional = ((bonus * 15) / 100); total = salario + adicional; printf("O salario de %s sera de R$ %.2f", vendedor, total); return 0; }
  6. @Alan Flanklyn Obrigado, meu patrão! Salvou!
  7. Como faço para imprimir a última letra de uma string? Só consigo imprimir a primeira ou todas as letras da palavra em questão. Usando "printf("%c", str[i]);" dentro do for, eu imprimo todas as letras. Fora do for (do jeito que está), imprime só a primeira letra e no "Ultimo caractere" imprime a primeira letra novamente em vez da última. #include <stdio.h> #include <string.h> int main(){ char str[20]; int i; printf("Digite uma palavra: "); fgets(str,20,stdin); for(i = 0; str[i] != '\0'; i++){ } printf("Primeiro caractere: %c\n",str[0]); printf("Ultimo caractere: %c\n",str['\0']); return 0; }
  8. O novo prédio da Sociedade Brasileira de Computação (SBC) possui 3 andares. Em determinadas épocas do ano, os funcionários da SBC bebem muito café. Por conta disso, a presidência da SBC decidiu presentear os funcionários com uma nova máquina de expresso. Esta máquina deve ser instalada em um dos 3 andares, mas a instalação deve ser feita de forma que as pessoas não percam muito tempo subindo e descendo escadas. Cada funcionário da SBC bebe 1 café expresso por dia. Ele precisa ir do andar onde trabalha até o andar onde está a máquina e voltar para seu posto de trabalho. Todo funcionário leva 1 minuto para subir ou descer um andar. Como a SBC se importa muito com a eficiência, ela quer posicionar a máquina de forma a minimizar o tempo total gasto subindo e descendo escadas. Sua tarefa é ajudar a diretoria a posicionar a máquina de forma a minimizar o tempo total gasto pelos funcionários subindo e descendo escadas. Entrada A entrada consiste em 3 números, A1 , A2 , A3 (0 ≤ A1 , A2 , A3 ≤ 1000), um por linha, onde Ai representa o número de pessoas que trabalham no i-ésimo andar. Saída Seu programa deve imprimir uma única linha, contendo o número total de minutos a serem gastos com o melhor posicionamento possível da máquina. #include <stdio.h> #include <math.h> int main(){ int funcionarios1, funcionarios2, funcionarios3; int total1, total2, total3, total4, andar = 0; scanf("%d", &funcionarios1); scanf("%d", &funcionarios2); scanf("%d", &funcionarios3); if(andar = 1){ total1 = funcionarios3 * 0; total2 = funcionarios2 * 1; total3 = funcionarios3 * 2; total4 = total1 + total2 + total3; printf("%d", total4); } else if(andar = 2){ total1 = funcionarios3 * 1; total2 = funcionarios2 * 0; total3 = funcionarios3 * 1; total4 = total1 + total2 + total3; printf("%d", total4); } else if(andar = 3){ total1 = funcionarios3 * 2; total2 = funcionarios2 * 1; total3 = funcionarios3 * 0; total4 = total1 + total2 + total3; printf("%d", total4); } return 0; } Alguém consegue arrumar esse programa? Acho que o erro está na parte do "andar".
  9. Para resolver este exercício, siga os passos abaixo: E = 1 + 1 / 1! + 1 / 2! + 1 / 3! + ... + 1 / (k-1)! + 1 / k! 1. A função deve receber um valor real x e calcule o valor de E. x representa o valor máximo (tolerância) para a diferença entre dois termos consecutivos. Isto é, o cálculo do valor de E deve ser computado até que |1/k! – 1/(k+1)! | < x . Imprima cada termo gerado e o resultado de E ao final. 2. Escreva uma função principal (main) que leia um valor real x e chame a função desenvolvida no item anterior. ex: 0.5 1 + 1/1! + 1/2! = 2.500 Não faço ideia de como devo fazer o fatorial de um número decimal e de como colocar a conta (1 +1/1! + 1/2! = ) junto com a resposta para cada tipo de exemplo. Tudo que eu consegui foi isso aqui: int main(){ float soma = 0, fat = 0, num; int i; scanf("%F", &num); for(i = 0; i < num; i++){ fat = fat * i; soma = soma + (1 / fat); } printf("E = %.3f", soma); return soma; }
  10. Estou tentando fazer com vetores agora. Porém, somente com alguns exemplos da certo. #include <stdio.h> #include <stdlib.h> int main (){ int vet [ 10 ], i = 0, maior, menor, x, y; scanf("%d", &vet [1]); for ( i = 2; i < 10; ++i ){ scanf ( "%d", &vet [ i ] ); if ( vet [ i ] > maior ){ maior = vet [ i ]; x = i; } if ( vet [ i ] < menor ){ menor = vet [ i ]; y = i; } } printf ( "O %do elemento é o maior.\n", x); printf ( "O %do elemento é o menor.", y ); return 0; }
  11. Escreva um programa que leia dez valores do teclado (usando a mesma variável) e imprima as posições do maior e do menor na sequência. ex: 2, 20, 1, 3, 6, 15, 12, 18, 8, 7. O 2o elemento é o maior. O 3o elemento é o menor. Não estou conseguindo colocar a posição de cada número. No meu programa aparece "20" e "1" em vez de "O 2o elemento é o maior." e "O 3o elemento é o menor.". Algum cidadão de bem poderia concluir esse código? Obrigado. #include <stdio.h> #include <stdlib.h> int main(){ int num, maior = 0, menor = 0, y = 0; printf("Digite um numero:"); scanf("%d", &num); menor = num; maior = num; for(y = 1; y < 10; y++){ printf("Digite um numero:"); scanf("%d", &num); if(num > maior) maior = num; if(num < menor) menor = num; } printf ("%d\n", maior); printf ("%d", menor); return 0; }
  12. Não consegui solucionar o problema. O que estou fazendo de errado? O que preciso acrescentar? #include <stdio.h> #include <stdlib.h> int main(){ int cont, num1, num2, total; scanf("%d", &num1); scanf("%d", &num2); for( cont = num1; cont <= num2; cont++ ){ total = (cont + cont) / ; } printf("%d\n", total); return 0; }
  13. Elabore uma função que receba como parâmetros dois valores reais a e b. A função deve ler uma sequência de valores reais e imprimir a média aritmética dos valores que pertencerem ao intervalo fechado entre a e b. A sequência de valores deverá ser encerrada quando for lido um valor negativo. Exemplo: Com entradas a = 7, b = 3 e sequência = 5 2 9 8 3 1 -2, a função deve imprimir o valor 4. Não consegui elaborar esse programa... Não estou entendendo a sequência e a média aritmética dos valores pertencentes ao intervalo.
  14. Verdade! Ontem fiquei tanto tempo mexendo com código que o raciocínio falhou... Obrigado, Adriano, salvou de mais!
  15. Não funcionou O compilador gera 1, 2, ou 3 valores de idade, sendo elas maiores e menores de 18 anos.. ex: 12, 5 e 19 com um determinado funcionário (3 dependentes sendo que 2 tem direito de receber) 21 e 17 com determinado funcionário (2 dependentes sendo que 1 tem direito de receber) 22 e 19... O programa tem que ler quantos dependentes a pessoa tem (3, 2, 1 ou nenhum) e deles quantos tem direito de receber por ser menor de 18 anos. Além disso, o programa deve rodar 5 vezes, 1 para cada funcionário e seus dependentes. Contudo, o número do funcionário não é atribuído no programa, o compilador só preenche quantos dependentes a pessoa tem e suas idades.

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

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.