solução - resolvido - exercicio c

9
1. Escrever um programa que leia um vetor de 30 elementos inteiros e no final mostre os valores do vetor que são maiores do que a media dos valores digitados. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) {int v[30],media,i; media=0; for(i=0;i<8;i++){ scanf("%d",&v[i]); media=media+v[i]; } media=media/8; printf("media:%d\n",media); for(i=0;i<8;i++){ if(v[i]>media) {printf("%d\n",v[i]); } } system("PAUSE"); return 0;} 2. Escrever um programa que declare um vetor de 20 inteiros, leia um valor para cada posição e no final mostre quantos elementos possuem valor maior, menor e igual ao primeiro elemento do vetor. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) {int v[20],i; for(i=0;i<8;i++){ scanf("%d",&v[i]);} for(i=0;i<8;i++){ if(v[i]>v[1]) {printf("maior%d\n",v[i]); if(v[i]==v[1]) {printf("igual%d\n",v[i]); if(v[i]<v[1]) {printf("menor%d\n",v[i]); } }}} system("PAUSE"); return 0;} 3. Escrever um programa que, usando um for, exiba o caractere, código ASCII e valor hexadecimal para todas as letras no intervalo de 'A' a 'Z', uma por linha, no seguinte formato: A - 65 - 41 B - 66 - 42 C - 67 - 43

Upload: caio-teixeira

Post on 03-Jan-2016

27 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: solução - resolvido - exercicio C

1. Escrever um programa que leia um vetor de 30 elementos inteiros e no final mostre os valores do vetor que são maiores do que a media dos valores digitados.

#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){int v[30],media,i;media=0;for(i=0;i<8;i++){ scanf("%d",&v[i]); media=media+v[i];} media=media/8; printf("media:%d\n",media);for(i=0;i<8;i++){if(v[i]>media){printf("%d\n",v[i]); } } system("PAUSE"); return 0;}

2. Escrever um programa que declare um vetor de 20 inteiros, leia um valor para cada posição e no final mostre quantos elementos possuem valor maior, menor e igual ao primeiro elemento do vetor.

#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){int v[20],i;for(i=0;i<8;i++){scanf("%d",&v[i]);} for(i=0;i<8;i++){if(v[i]>v[1]){printf("maior%d\n",v[i]);if(v[i]==v[1]){printf("igual%d\n",v[i]); if(v[i]<v[1]){printf("menor%d\n",v[i]); } }}} system("PAUSE"); return 0;}

3. Escrever um programa que, usando um for, exiba o caractere, código ASCII e valor hexadecimal para todas as letras no intervalo de 'A' a 'Z', uma por linha, noseguinte formato:A - 65 - 41B - 66 - 42C - 67 - 43#include <stdio.h>#include <stdlib.h>#include <tchar.h>#include <ctype.h>int main(int argc, char *argv[]){ char ch, resposta= 'S' ; do { system ("cls"); ch ='\0'; printf("\n Digite um caracter: \n"); scanf("%c",&ch);

Page 2: solução - resolvido - exercicio C

printf("\n O caracter digitado foi: %c", ch); printf("\n O codigo ASCII e': %d\n", ch); fflush(stdin); printf ("\n vai continuar e ai: (S\\N) ?" ); resposta= toupper(getche()); } while (resposta='S'); printf("\n"); system("PAUSE"); return 0;}

4. Faca um programa que receba 10 valores inteiros e que indique: quantos são pares, quantos são impares, quantos são positivos e quantos são negativos.

#include (stdio.h)#include (stdlib.h)

main() {{ int n1, n2, n3, n4, n5, n6, n7, n8, n9, n10; int n_pares=0, n_impares=0, n_pos=0, n_neg=0; printf("digite o 1..º número inteiro"); scanf("%d",&n1); if (n1 % 2 == 0) n_pares++; else n_impares++; if (n1 > 0) n_pos++; else n_neg++; printf("digite o 2.º número inteiro"); scanf("%d",&n2); if (n2 % 2 == 0) n_pares++; else n_impares++; if (n2 > 0) n_pos++; else n_neg++; printf("digite o 3.º número inteiro"); scanf("%d",&n3); if (n3 % 2 == 0) n_pares++; else n_impares++; if (n3 > 0) n_pos++; else n_neg++; printf("Resultados\n"); printf(" %d números pares\n",n_pares); printf(" %d números impares\n",n_impares); printf(" %d números positivos\n",n_pos); printf(" %d números negativos\n",n_neg);} system("PAUSE"); return 0;}

5. Crie um programa em C que calcule o salário de um empregado baseado no n.o de horas que trabalhou, e no seu salário por hora. Notas:a) As horas extras (> 40) são pagas em dobro.b) O numero de horas trabalhadas e o valor por hora devem ser Informadospelo usuário.

#include <stdio.h>#include <stdlib.h>#define extras 160 main(){{ float horas, salario_hora, salario; printf("indique o n.º de horas que trabalhou este mes: "); scanf("%f",&horas); printf("indique quanto ganha por hora (em reais): "); scanf("%f",&salario_hora); if (horas > 160) salario = 2 * salario_hora * (horas - 160) + salario_hora * 160;

Page 3: solução - resolvido - exercicio C

else salario = salario_hora * horas; printf("O seu salário vai ser: %.2f",salario);} system("PAUSE"); return 0;}

6. Faca um programa que escreva na tela uma tabela de conversão de graus Celsius para Fahrenheit. A tabela deve apresentar os graus Celsius de 0 a 100 com intervalos de 2 em 2.

7. Faca um programa que, através de uma função, converta um valor de temperatura lida em Celsius em fahrenheit e mostre o resultado na tela.#include (stdio.h)#include (stdlib.h)

int main(int argc, char *argv[]){ int tc, tf; printf("digite a temperatura em fahrenheit"); scanf("%i",&tc); for(i>=-100;&& i<=+100;i++); tc==((9*i)/5)+32); if (tf==i); printf("tf equivale a: ,"tc",em graus celsius"); system("PAUSE"); return 0;}

8. Faca uma função que receba uma palavra e exiba cada caractere da palavra em uma linha. Teste essa função na função principal do programa desenvolvido. #include (stdio.h)#include (stdlib.h)#include (string.h)int contaCaracteres (char palavra, char letra);int main(int argc, char *argv[]) { char texto[100], letra;

int total;scanf("%s", texto);getchar();scanf("%c", &letra);total = contaCaracteres (texto, letra);printf("A letra %c aparece %d vezes na palavra %s.", letra, total, texto);return 0;

}int contaCaracteres (char *palavra, char letra) {

int tamanho, i, total=0;tamanho = strlen(palavra);for (i=0;i<tamanho;i++) {

if (palavra[i]==letra)total++; }

system("PAUSE");return 0; }

9. Faca uma funcao que receba uma palavra e exiba a palavra invertida. Teste essa funcao na funcao principal do programa desenvolvido.

#include <stdio.h>#include <conio.h>#include <string.h>void inverter(){

Page 4: solução - resolvido - exercicio C

char str[200];int i,length;printf("\nDigite a string(sem espacos): ");scanf("%s",&str);printf("\n\n\n");length=strlen(str);for (i=length;i>=0;i--) {printf("%c",str[i]);}}int main(int argc, int * argv[]){inverter();printf("\n\n\nPressione qualquer tecla para finalizar...");getch();return(0);}

10.Faça um programa que vai pedindo números ao utilizador ate que este introduza o numero -1. O computador deve dizer a media dos números introduzidos (excluindo o -1). #include <stdio.h>#include <conio.h>int main(int argc, int * argv[]){float input,soma,media;int counter;soma=0;counter=-1;media=0;input=0;do{counter=counter+1;soma=soma+input;printf("Digite o valor: ");scanf("%f", &input); } while (input>=0) ;media = soma / counter;printf("A media dos valores eh: %f ", media);printf("\n\n\nPressione qualquer tecla para finalizar...");getch();return(0);}

11. Altere o programa anterior, de modo que ele forneça o mínimo, Maximo e media dos valores lidos.#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int i, valor1, valor2, valor3, valor4, valor5, media; {printf (valor1, valor2, valor3, valor4, valor5) media == (valor1+valor2+valor3+valor4+valor5)/5; if (valor1>media) ; printf(valor1); else if (valor2>media) ; printf(valor2); else if (valor3>media); printf(valor3); else if (valor4>media); printf(valor4); else if(valor5>media); printf(valor5); else system("PAUSE");

Page 5: solução - resolvido - exercicio C

return 0;}

12. Criar um programa que contenha a função void estação (int dia, int mês), que exibe no vídeo qual a estação do ano da data passada por parâmetro. Lembrando que a primavera começa no dia 23 de setembro, o verão em 21 de dezembro, o outono em 21 de marco e o inverno em 21 de junho. Estação(25,10); → saída: 25/10 e primavera. estação(29,12); → saída: 29/12 e verão.

#include <stdio.h>#include <conio.h>

void estacao(int day, int mes){ int season;if (mes<=3){season=2;if ((mes==3) && (day>=21)) season=3; }if ((mes<=6) && (mes>3)){ season=3;if ((mes==6) && (day>=21)) season=4; }if ((mes<=9) && (mes>6)){ season=4; if ((mes==9) && (day>=23)) season=1; }if ((mes<=12) && (mes>10)){ season=1; if ((mes==12) && (day>=21)) season=2; }if (season==1) printf("%d/%d eh primavera.",day,mes);if (season==2) printf("%d/%d eh verao.",day,mes);if (season==3) printf("%d/%d eh outono.",day,mes);if (season==4) printf("%d/%d eh inverno.",day,mes); }int main(int argc, int * argv[]){int day,month;do {printf("\nDigite o Dia,Mes (mes 13 para sair): ");scanf("%d,%d",&day,&month);estacao(day,month);} while ((month<13) && (day<31));printf("\n\n\nPressione qualquer tecla para finalizar...");getch();return(0);}

13. Escrever um programa que leia 2 variáveis int (pode ser um vetor ou variáveis separadas) e mostra os valores digitados em ordem crescente (primeiro o menor, depois o maior). A leitura deve ser feita na função main() e a exibição em uma função chamada mostra(). O programa não pode ter variáveis globais.

14. Escrever um programa que leia quatro valores float e mostre o maior e o menor valor digitado. A leitura deve ser feita em uma função chamada leitura() e o resultado deve ser exibido em uma função chamada exibe(), sendo que não pode ser declarada nenhuma variável global.#include (stdio.h)#include (stdlib.h)int main() {

int a,b;scanf("%d %d", &a, &b);if (a>b)

printf("%d maior que %d.", a, b);else if (b>a)

printf("%d menor que %d.", a, b);else

Page 6: solução - resolvido - exercicio C

printf("são valores iguais.");return 0;}

15.Faca um programa que obtenha do teclado o valor n e imprima na tela os n primeiros termos de uma seqüência de Fibonacci. Para isso, crie uma função chamada Fibonacci que recebe o numero n.Observação: Uma seqüência e dita de Fibonacci quando os dois primeiros termos forem 0 e 1 e todos os termos consecutivos tenham valor igual a soma dos dois termos anteriores.Exemplo: 1– 1 – 2 – 3 – 5 – 8 – 13 – 21 – 34 – 55 . . .

#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){int anterior=1, atual=1, n, proximo, total=0;printf("digite ate qual termo da serie fibonacci deseja obter");scanf("%d",&n);

printf("%d\n", anterior);printf("%d\n", atual);while (total<=n) {

proximo = anterior + atual;anterior = atual;atual = proximo;printf("%d\n", proximo);total++;

}system("PAUSE"); return 0;}}

16.No Brasil existem as moedas e 1, 5, 10, 25 e 50 centavos, e notas de 1, 2, 5, 10, 20, 50 e 100 Reais (desconsiderando a moeda de 1 Real). Faça um programa que dado um valor em reais, mostre a menor combinação de notas e moedas existente para esse valor.EX: R$18,67 = 1 nota de 10 reais, 1 nota de 5 reais, 1 nota de 2 reais, 1 nota de 1 real, 1 moeda de 50 centavos, 1 moeda de 10 centavos, 1 moeda de 5 centavos, 2 moedas de 1 centavo.

#include <stdio.h>#include <stdlib.h>

int main(int argc, char *argv[]) {int i, valorPago, valorProduto, troco, quantidade, inteiro; printf(“valorPago, valorProduto”); troco =valorPago – valorProduto; printf("O valor total do troco é ", troco); if (troco \ 50==0); quantidade =troco \ 50; troco = troco % 50; printf ("A quantidade de notas de R$ 50 é ", quantidade); else if (troco \ 20==0); printf=troco \ 20; troco = troco % 20;

Page 7: solução - resolvido - exercicio C

printf ("A quantidade de notas de R$ 20 é ", quantidade); else if (troco \ 10 <> 0); quantidade = troco \ 10; troco=troco % 10; printf("A quantidade de notas de R$ 10 é ", quantidade); else if (troco \ 5 == 0); quantidade = troco \ 5; troco = troco % 5; printf ("A quantidade de notas de R$ 5 é ", quantidade); else if (troco \ 2 == 0); quantidade =troco \ 2; troco = troco % 2; printf ("A quantidade de notas de R$ 2 é ", quantidade); else if (troco \ 1 == 0); quantidade = troco \ 1 troco = troco % 1 printf ("A quantidade de notas de R$ 1 é ", quantidade); else system("PAUSE"); return 0;}

17.Faca um algoritmo que receba três valores que representarão os lados de um triangulo e serão fornecidos pelo usuário. Verifique se os valores formam um triangulo e classifique esse triangulo como: eqüilátero – três lados iguais; isósceles – dois lados iguais; escaleno – três lados diferentes;Lembre-se de que, para formar um triangulo: Nenhum dos lados pode ser igual a zero; Um lado não pode ser maior do que a soma dos outros dois.

#include <stdio.h>#include <stdlib.h>

int main(int argc, char *argv[]){int lado1, lado2, lado3;scanf("%d %d %d", &lado1, &lado2, &lado3);if ((lado1>=lado2+lado3) || (lado2>=lado1+lado3) || (lado3>=lado1+lado2)) {printf("Os lados nao sao valores de um triangulo.\n");return 0;}else {if ((lado1==lado2) || (lado2==lado3)) printf("Os lados formam um triangulo equilatero.");elseif ((lado1!=lado2) && (lado2!=lado3) && (lado3!=lado1)) printf("Os lados formam um triangulo escaleno."); elseprintf("Os lados formam um triangulo isoceles.");}system("PAUSE");return 0;}