Prévia do material em texto
Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 } for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(cont[j]>cont[i]) { v=j; } } } } printf("\nO vencedor e o candidato %s", candidato[v]); return 0; } 14) Escreva um programa que leia um conjunto de 50 fichas, cada uma contendo, a altura e o código do sexo de uma pessoa (código = 1 se for masculino e 2 se for feminino). Esses dados devem ser armazenados em vetores. Em seguida, o programa deve inserir o nome das pessoas ordenadas pela altura (em ordem crescente). #include<stdio.h> #include<string.h> int main (void) { char nome [50][20],auxiliarnome[20]; float vet[50],auxiliar=0; int sexo[50],auxiliarsexo,i; int j; for(i=0;i<50;i++) { printf("Digite o nome da pessoa %d pessoa:",i+1); scanf("%s",nome[i]); printf("Digite a altura da pessoa %d pessoa:",i+1); scanf("%f",&vet[i]); printf("Digite o sexo da pessoa, 1.Homem 2.Mulher.\n"); scanf("%d",&sexo[i]); Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 } for(i=0;i<50;i++) { for(j=i+1;j<50;j++) { if(vet[i]>vet[j]) { auxiliar=vet[i]; vet[i]=vet[j]; vet[j]=auxiliar; strcpy(auxiliarnome,nome[i]); strcpy(nome[i],nome[j]); strcpy(nome[j],auxiliarnome); auxiliarsexo=sexo[i]; sexo[i]=sexo[j]; sexo[j]=auxiliarsexo; } } } for(i=0;i<50;i++) { printf("%s",nome[i]); printf("\naltura: %f,",vet[i]); if(sexo[i]==1) { printf("masculino.\n"); } if(sexo[i]==2) { printf("feminino.\n"); } } return 0; } 15) Escreva um programa que leia um conjunto de N valores inteiros, onde N é um número fornecido pelo usuário. Em seguida, o programa deve calcular e imprimir a média, a variância e o desvio padrão dos valores lidos (amostra). Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 #include<stdio.h> #include<math.h> int main(void) { float vetor[99999],soma=0,media,soma2=0,a,variancia,desvio,n; int i; printf("Digite a quantidade de termos:"); scanf("%f",&n); for(i=0;i<n;i++) { printf("Digite o valor:"); scanf("%f",&vetor[i]); soma=soma+vetor[i]; } media=soma/n; printf("Media dos valores:%f",media); for(i=0;i<n;i++) { a=(vetor[i] - media); a=a*a; soma2=soma2+a; } variancia=soma2/(n-1); printf("\nValor da variancia dos termos:%f",variancia); desvio=sqrt(variancia); printf("\nValor do desvio padrao dos termos:%f",desvio); return 0; } 16) Deseja-se publicar o número de acertos de cada aluno em uma prova em forma de testes. A prova consta de 30 questões, cada uma com cinco alternativas identificadas por A, B, C, D e E. Para isso são dados: a) o cartão gabarito; b) o número de alunos da turma; c) o cartão de respostas para cada aluno, contendo o seu número e suas respostas. #include <stdio.h> #include <conio.h> int main() { int q,j,alu,acertos; char gab[30],resp[30]; printf("Digite a quantidade de alunos que realizou a prova: "); Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 scanf("%d",&q); printf("Digite o gabarito da prova em sequencia: "); for (j =0;j<30;j++) scanf("%c",&gab[j]); for (alu=1;alu<=q;alu++) { acertos=0; printf("Digite as respostas do aluno em sequencia %d: ", alu); for (j=0;j<30;j++) { scanf(" %c", &resp[j]); if (resp[j]==gab[j]) acertos=acertos+1; } printf("O aluno %d fez %d acertos\n", alu, acertos); } getch(); } 17) Dados dois vetores x e y, ambos com n elementos, determinar o produto escalar desses vetores. #include <stdio.h> #include <conio.h> #define MAX 10 int main() { int j,n,i; float prod,x[MAX],y[MAX]; printf("Digite o tamanho dos vetores:"); scanf("%d",&n); printf("Digite os componentes do vetor x:\n"); for (j=0;j<n;j++) scanf("%f",&x[j]); printf("Digite os componentes do vetor y:\n"); for (j=0;j<n;j++) scanf("%f",&y[j]); prod=0; for (j=0;j<n;j++) prod=prod+x[j]*y[j]; printf("Produto escalar desses vetores: %f\n", prod); getch(); } 18) Faça um programa para resolver o seguinte problema: Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 São dadas as coordenadas reais x e y de um ponto, um número natural n, e as coordenadas reais de n pontos (1 < n < 100). Deseja-se calcular e imprimir sem repetição os raios das circunferências centradas no ponto (x,y) que passam por pelo menos um dos n pontos dados. Exemplo : (x,y) = (1.0, 1.0) ; n = 5 Pontos : (-1.0, 1.2) , (1.5, 2.0) , (0.0, -2.0) , (0.0, 0.5) , (4.0, 2.0) Nesse caso há três circunferências de raios: 1.12, 2.01 e 3.162. Dois pontos estão na mesma circunferência se estão à mesma distância do centro. #include<stdio.h> #include<math.h> int main(void) { float xp,yp; printf("Coordenada x:"); scanf("%f",&xp); printf("Coordenada y:"); scanf("%f",&yp); int n; printf("Valor de n:"); scanf("%d",&n); if(n<1 || n>100) { printf("n deve ser menor do que 100 e maior do que 1."); } float x[n],y[n]; int i; for(i=0;i<n;++i) { printf("Valor de x%d:",i+1); scanf("%f",&x[i]); printf("Valor de y%d:",i+1); scanf("%f",&y[i]); } Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 float raio[n]; for(i=0;i<n;++i) { float dx=pow(xp-x[i],2); float dy=pow(yp-y[i],2); float R=sqrt(dx+dy); raio[i]=R; int j, repetido=0; for(j=0;j<i;++j) { if(R==raio[j]) { repetido=1; } } if(repetido==0) { printf("%f\n",R); } } return 0; } 19) Dada uma seqüência x1, x2, ..., xk de números inteiros, verifique se existem dois segmentos consecutivos iguais nesta seqüência, isto é, se existem i e m tais que: xi, xi+1,..., xi+m-1 = xi+m, xi+m+1,..., xi+2m-1 Imprima, caso existam, os valores de i e m. Exemplo: Na seqüência 7, 9, 5, 4, 5, 4, 8, 6 existem i=3 e m=2. #include<stdio.h> #include<stdlib.h> #include<math.h> Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 int main (void) { int k,i,m,j; printf("Digite o valor de K:"); scanf("%d",&k); int x[k]; printf("Digite a sequencia de k numeros:\n"); for(j=0;j<k;++j) { printf("x%d:",j+1); scanf("%d",&x[j]); } int resposta; for(i=0;i<k;++i) { for(m=1;i+m<k;++m) { resposta=0; for(j=0;i+j<i+m;++j) { if(x[i+j]==x[i+j+m]) { ++resposta; } else {break;} } if(resposta>1) { printf("i:%d\nm:%d\n",i+1,m); } } } return 0; } 20) Dada uma seqüência de n números inteiros, determinar um segmento de soma máxima. Exemplo: Na seqüência 5, 2, -2, -7, 3, 14, 10, -3, 9, -6, 4, 1 , a soma do segmento é 33. Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 #include<stdio.h> int main (void) { int n; printf("Digite o valor de n:"); scanf("%d",&n); int seq[n]; printf("Digite a sequencial de n numeros:\n"); int j; for(j=0;j<n;++j) { printf("%d O numero:",j+1); scanf("%d",&seq[j]); } int tam; int inicio; int soma; int tam_ssm=0; int inicio_ssm=0; int soma_ssm=0; for(tam=1;tam<n;++tam) { for(inicio=0;inicio<n;++inicio) { soma=0; for(j=0;j<tam;++j) { if(inicio+j>n-1) {break;} soma=soma+ seq[inicio+j]; } if(soma>soma_ssm){ soma_ssm=soma; inicio_ssm=inicio; tam_ssm=tam; } } Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 } for(j=0;j<tam_ssm;++j) { printf("%d,",seq[inicio_ssm+j]); } printf("\nSoma do segmento de soma maxima: %d", soma_ssm); return 0; } 21) Em uma classe há n alunos, cada um dos quais realizou k provas com pesos distintos. Dados n , k, os pesos das k provas e as notas de cada aluno, calcular a média ponderada das provas para cada aluno e a média aritmética da classe em cada uma das provas. #include<stdio.h> #include<stdlib.h> int main (void) { int n,k; printf("Digite a quantidade de alunos:"); scanf("%d",&n); printf("Digite a quantidade de provas:"); scanf("%d",&k); int peso[k]; int i; for(i=0;i<k;++i) { printf("Digite o peso da prova %d:",i+1); scanf("%d",&peso[i]); } float notas[n][k]; int j; for(i=0;i<n;++i) { printf("Aluno %d:\n",i+1); for(j=0;j<k;++j) { printf("Digite:"); Impresso por ow conta, CPF 087.521.573-42 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 16/07/2021 10:46:50 scanf("%f",¬as[i][j]); } } int soma_pesos=0; for(i=0;i<k;++i) { soma_pesos=soma_pesos + peso[i]; } for(i=0;i<n;++i) { printf("Media ponderada do aluno %d:",i+1); float media_ponderada=0; float soma_ponderada=0; for(j=0;j<k;++j) { soma_ponderada=soma_ponderada+ (notas[i][j]*peso[j]); media_ponderada=soma_ponderada/soma_pesos; } printf("%f\n",media_ponderada); } for(i=0;i<k;++i) { printf("Media da prova %d",i+1); float media_prova=0; float soma_notas=0; for(j=0;j<n;++j) { soma_notas=soma_notas+notas[j][i]; media_prova=soma_notas/n; } printf("%f\n",media_prova); } return 0; }