Buscar

Lista de vetores resolvida em C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Ceará – IUFC 
Centro de Ciências – CC 
Departamento de Computação - DC 
Fundamentos de Programação 
 
 
Exercício: Vetores 
Objetivos: Introduzir o conceito de vetores. 
Data da Entrega: 23/07/2020 – 06/08/2020 
 
 
NOME: _________________________________________________MATRÍCULA: _________ 
 
QUESTÃO 1 
Para cada um dos problemas a seguir, elabore um algoritmo utilizando Português 
Estruturado (Portugol) e, em seguida, implemente o algoritmo concebido utilizando a 
Linguagem C. 
 
1.1. Escreva um programa que armazene em um vetor todos os números inteiros de 200 
a 100 (em ordem decrescente). Após isso, o programa deve imprimir todos os valores 
armazenados. 
1.2. Escreva um programa que armazene em um vetor todos os números múltiplos de 5, 
no intervalo fechado de 1 a 500. Após isso, o programa deve imprimir todos os valores 
armazenados. 
1.3. Escreva um programa que armazene em um vetor o quadrado dos números ímpares 
no intervalo fechado de 1 a 20. Após isso, o programa deve imprimir todos os valores 
armazenados. 
1.4. Escreva um programa que receba a altura de 10 atletas. Esse programa deve 
imprimir a altura daqueles atletas que tem altura maior que a média. 
1.5. A série de Fibonacci é formada pela seqüência: 
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... 
Escreva um programa que armazene em um vetor os 50 primeiros termos da série de 
FIBONACCI. Após isso, o programa deve imprimir todos os valores armazenados. 
1.6. Implementar um programa para calcular o sen(X). O valor de X deverá ser digitado 
em graus. O valor do seno de X será calculado pela soma dos 15 primeiros termos da 
série a seguir: 
 
Os termos da série devem ser armazenados em um vetor. 
1.7. Em uma cidade do interior, sabe-se que, de janeiro a abril de 1976 (121 dias), não 
ocorreu temperatura inferior a 15ºC nem superior a 40ºC. As temperaturas verificadas 
em cada dia estão disponíveis em uma unidade de entrada de dados. Fazer um programa 
que calcule e imprima: 
- A menor temperatura ocorrida; 
- A maior temperatura ocorrida; 
- A temperatura média; 
- O número de dias nos quais a temperatura foi inferior à temperatura média. 
1.8. Fazer um programa que: 
a) Leia o valor inteiro de n (n <= 1000) e os n valores de uma variável composta A 
de valores numéricos, ordenados de forma crescente; 
b) Determine e imprima, para cada número que se repete no conjunto, a quantidade 
de vezes em que ele aparece repetido; 
c) Elimine os elementos repetidos, formando um novo conjunto; 
d) Imprima o conjunto obtido no item c. 
1.9. Dado um conjunto de 100 valores numéricos disponíveis num meio de entrada 
qualquer, fazer um algoritmo em PORTUGOL para armazená-los numa variável 
composta B, e calcular e imprimir o valor do somatório dado a seguir: 
 
1.10. Um armazém trabalha com 100 mercadorias diferentes identificadas pelos números 
inteiros de 1 a 100. O dono do armazém anota a quantidade de cada mercadoria vendida 
durante o mês. Ele tem uma tabela que indica, para cada mercadoria, o preço de venda. 
Escreva um programa para calcular o faturamento mensal do armazém. A tabela de 
preços é fornecida seguida pelos números das mercadorias e as quantidades vendidas. 
Quando uma mercadoria não tiver nenhuma venda, é informado o valor zero no lugar 
da quantidade. 
1.11. Seja: 
 
 Escrever um programa que: 
a) Leia o valor de n, sendo n <= 20; 
b) Leia os coeficientes ai, onde i = 0, 1, 2 , ..., n; 
c) Calcule o valor de P para 10 valores lidos para x; 
d) Imprima o valor de x e o valor de P correspondente. 
1.12. Faça um programa que leia um valor N (N <= 20) e os N valores de uma variável 
composta. Ordene os valores recebidos em forma crescente e imprima a variável 
composta ordenada. Além disso, o programa deve imprimir, para cada número que se 
repete no conjunto, a quantidade de vezes em que ele aparece repetido. O programa 
também deve ler um número k e imprimir, antes e depois da ordenação, o k-ésimo 
elemento da variável composta. 
1.13. Elabore um programa para automatizar as eleições do Centro Acadêmico do curso 
de Ciência da Computação. Inicialmente, o programa deverá ler os nomes dos N 
candidatos nas eleições. O programa deve contabilizar os votos da seguinte forma: o 
usuário deverá digitar o nome do candidato. A eleição deve ser finalizada e o vencedor 
indicado quando o usuário digitar a palavra “fim”. 
1.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). 
1.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). 
1.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. 
1.17. Dados dois vetores x e y, ambos com n elementos, determinar o produto escalar 
desses vetores. 
1.18. Faça um programa para resolver o seguinte problema: 
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. 
 
Observações: 
Distância entre os pontos (a,b) e (c,d) é 
Dois pontos estão na mesma circunferência se estão à mesma distância do centro. 
1.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. 
 
1.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. 
 
1.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. 
 
 
 
 
 
Questões erradas:
11
19
21 = coloquei o peso como inteiro.
1) Escreva um programa que armazene em um vetor todos os números inteiros de
200 a 100 (em ordem decrescente). Após isso, o programa deve imprimir todos os
valores armazenados.
#include<stdio.h>
int main(void)
{
int vetor [101];
int i ,j = 0;
for(i=200;i>=100;i--)
{
vetor[j]= i;
j++;
}
for(j=0; j<=100; j++)
{
printf(" %d,", vetor[j] );
}
return 0;
}
2) Escreva um programa que armazene em um vetor todos os números múltiplos de
5, no intervalo fechado de 1 a 500. Após isso, o programa deve imprimir todos os
valores armazenados.
#include<stdio.h>
int main(void)
{
int vetor[500];
int i, j=0;
for(i=1;i<=500;i++)
{
if(i%5==0)
{
vetor[j]=i;
j++;
}
}
for(i=0;i<j;i++)
{
printf("\nMultiplo de 5: %d ", vetor[i]);
}
return 0;
}
3) Escreva um programa que armazene em um vetor o quadrado dos números
ímpares no intervalo fechado de 1 a 20. Após isso, o programa deve imprimir todos
os valores armazenados.
#include<stdio.h>
int main(void)
{
int vetor[20];
int i, j=0;
for(i=1;i<=20;i++)
{
if(i%2!=0)
{
vetor[j]=i*i;
j++;}
}
for(i=0;i<j;i++)
{
printf("\nImpares ao quadrado: %d", vetor[i]);
}
return 0;
}
4) Escreva um programa que receba a altura de 10 atletas. Esse programa deve
imprimir a altura daqueles atletas que tem altura maior que a média.
#include<stdio.h>
int main (void)
{
float vetor[10];
int i;
float soma=0,media;
for(i=0;i<10;i++)
{
printf("Digite a altura do atleta:");
scanf("%f",&vetor[i]);
soma=soma+vetor[i];
}
media=soma/10;
printf("Valor da media das alturas: %f",media);
for(i=0;i<10;i++)
{
if(vetor[i]>media)
{
printf("\nAltura maior do que a media: %f", vetor[i] );
}
}
return 0;
}
5) A série de Fibonacci é formada pela seqüência: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
Escreva um programa que armazene em um vetor os 50 primeiros termos da série de
FIBONACCI. Após isso, o programa deve imprimir todos os valores armazenados.
#include<stdio.h>
int main (void)
{
int j=0,soma,a=1,b=1,i;
double vetor[50];
soma=a+b;
for(i=1;i<=50;i++)
{
if(i==1)
{
vetor[j]=a;
j++;
}
if(i==2)
{
vetor[j]=b;
j++;
}
if(i>2)
{
vetor[j]=soma;
a=b;
b=soma;
soma=a+b;
j++;
}
}
for(j=0;j<=49;j++)
{
printf("\n%lf",vetor[j]);
}
return 0;
}
6) Implementar um programa para calcular o sen(X). O valor de X deverá ser digitado
em graus. O valor do seno de X será calculado pela soma dos 15 primeiros termos da
série a seguir:
sen(x)= x - x^3/3! + ...
Os termos da série devem ser armazenados em um vetor.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
int i;
double p, z, soma=0, m, fat=1, x=0, n, y=2, s[15];
printf("Digite o valor de X em graus: ");
scanf("%lf", &n);
n=(n*3.14)/180;
for(i=0;i<15;i++)
{
for(x;x<y;x++)
{
if(x==1)
{
fat=1;
}
else
fat=fat*x;
}
z=x-1;
p=pow(n,z);
m=p/fat;
y=x+2;
if(i%2==0)
{
soma=soma+m;
}
else
{
soma=soma-m;
m=m*-1;
}
s[i]=m;
printf("\n%lf", s[i]);
}
printf("\nO valor do sen e igual a %lf", soma);
}
7) Em uma cidade do interior, sabe-se que, de janeiro a abril de 1976 (121 dias), não
ocorreu temperatura inferior a 15ºC nem superior a 40ºC. As temperaturas verificadas
em cada dia estão disponíveis em uma unidade de entrada de dados. Fazer um
programa que calcule e imprima:
- A menor temperatura ocorrida;
- A maior temperatura ocorrida;
- A temperatura média;
- O número de dias nos quais a temperatura foi inferior à temperatura média.
#include<stdio.h>
int main (void)
{
int dias=0,i;
float maior=0,menor=9999,media,soma=0;
float vetor[121];
printf("Digite uma temperatura Minima:15 Maxima:40\n");
for(i=0;i<121;i++)
{
printf("Digite a temperatura:");
scanf("%f",&vetor[i]);
if(vetor[i]<15 || vetor[i]>40)
{
printf("Temperatura invalida.");
}
else
{
soma=soma+vetor[i];
if(vetor[i]<menor)
{
menor=vetor[i];
}
if(vetor[i]>maior)
{
maior=vetor[i];
}
}
}
media=soma/121;
printf("\nMedia da temperatura no periodo:%.2f",media);
printf("\nMenor temperatura do periodo:%.2f",menor);
printf("\nMaior temperatura do periodo:%.2f",maior);
for(i=0;i<121;i++)
{
if(vetor[i]<media)
{
dias++;
}
}
printf("\nTotal de dias com temp. abaixo da media:%d",dias);
return 0;
}
8) Fazer um programa que:
a) Leia o valor inteiro de n (n <= 1000) e os n valores de uma variável composta A de
valores numéricos, ordenados de forma crescente;
b) Determine e imprima, para cada número que se repete no conjunto, a quantidade
de vezes em que ele aparece repetido;
c) Elimine os elementos repetidos, formando um novo conjunto;
d) Imprima o conjunto obtido no item c.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main (void)
{
int n;
printf("Digite o numero de termos do vetor: ");
scanf("%d", &n);
if(n>1000 || n<0)
{
printf("\nNumero de termos invalido");
}
else
{
int vetor[n],i,j,aux;
int repetidos[n];
int vezes[n];
int U[n];
int qtde, cont, cont_r=0,cont_u=0;
for(i=0;i<n;i++)
{
printf("Digite o numero:");
scanf("%d",&vetor[i]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(vetor[j]>vetor[j+1])
{
aux = vetor[j];
vetor[j]=vetor[j+1];
vetor[j+1]=aux;
}
}
}
printf("Vetor em ordem crescente:");
for(i=0;i<n;i++)
{
printf("%d ",vetor[i]);
}
for (i=0; i<n; i++)
{ qtde = 1;
for (j=0; j<i; j++)
{
if (i!=j)
{
if (vetor[i] == vetor[j])
qtde = qtde + 1;
}
}
if (qtde > 1)
{
cont = 0;
while (cont < cont_r && vetor[i]!=repetidos[cont])
{
cont = cont + 1;
}
if (cont == cont_r)
{
repetidos[cont_r] = vetor[i];
vezes[cont_r] = qtde;
cont_r = cont_r + 1;
}
else
vezes[cont] = vezes[cont]+1;
}
}
printf("\nRepetidos: ");
for (i=0; i<cont_r; i++)
{
printf("O numero %d apareceu %d",repetidos[i],vezes[i]);
}
for(i=0;i<n;i++)
{
j=0;
while(j<cont_u && vetor[i]!=U[j])
{
j++;
}
if(j>=cont_u)
{
U[cont_u]=vetor[i];
cont_u=cont_u+1;
}
}
printf("\nConjunto sem repeticao: ");
for(i=0;i<cont_u;i++)
{
printf("%d ",U[i]);
}
return 0;
}
}
9) Dado um conjunto de 100 valores numéricos disponíveis num meio de entrada
qualquer, fazer um algoritmo em PORTUGOL para armazená-los numa variável
composta B, e calcular e imprimir o valor do somatório dado a seguir:
s= (b1-b100)3 + (b2-b99)3 + …
#include<stdio.h>
int main(void)
{
float vetor[100],soma=0,n;
int i,a=0,b=99,j;
for(i=0;i<99;i++)
{
printf("Digite o termo:");
scanf("%f",&vetor[i]);
}
for(j=0;j<50;j++)
{
n=vetor[a]-vetor[b];
n=n*n*n;
soma=soma+n;
a++;
b--;
}
printf("Valor da soma:%f",soma);
return 0;
}
10) Um armazém trabalha com 100 mercadorias diferentes identificadas pelos
números inteiros de 1 a 100. O dono do armazém anota a quantidade de cada
mercadoria vendida durante o mês. Ele tem uma tabela que indica, para cada
mercadoria, o preço de venda. Escreva um programa para calcular o faturamento
mensal do armazém. A tabela de preços é fornecida seguida pelos números das
mercadorias e as quantidades vendidas. Quando uma mercadoria não tiver nenhuma
venda, é informado o valor zero no lugar da quantidade.
#include<stdio.h>
int main (void)
{
int i;
float quantidade[100],soma=0,preco[100],n;
for(i=0;i<100;i++)
{
printf("Escreva o preco da mercadoria:");
scanf("%f",&preco[i]);
printf("Escreva a quantidade do produto vendida:");
scanf("%f",&quantidade[i]);
}
for(i=0;i<100;i++)
{
n=preco[i]*quantidade[i];
soma=soma+n;
}
printf("Total vendidio de todos os produtos:%f",soma);
return 0;}
11) Seja: P = An X^n + An-1 X^n-1 + ...
Escrever um programa que:
a) Leia o valor de n, sendo n <= 20;
b) Leia os coeficientes ai, onde i = 0, 1, 2 , ..., n;
c) Calcule o valor de P para 10 valores lidos para x;
d) Imprima o valor de x e o valor de P correspondente.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main (void)
{
int n;
printf("Digite n: ");
scanf("%d", &n);
if (n>20)
{
printf("\nN invalido");
}
else
{
int a[n], i;
for(i=0;i<n;i++)
{
printf("\nDigite o %d-esimo termo: ", i+1);
scanf("%d", &a[i]);
}
int k[n], x, z, P, j;
for(j=0;j<10;j++)
{
P=0;
printf("\nDigite o valor %d-esimo valor de x: ", j+1);
scanf("%d",&x);
for(i=0;i<n;i++)
{
z=pow(x,i);
k[i]=z;
P=P+a[i]*k[i];
}
printf("\nPara x igual a %d, temos P igual a %d", x, P);
}
}
}
12) Faça um programa que leia um valor N (N <= 20) e os N valores de uma variável
composta. Ordene os valores recebidos em forma crescente e imprima a variável
composta ordenada. Além disso, o programa deve imprimir, para cada número que se
repete no conjunto, a quantidade de vezes em que ele aparece repetido. O programa
também deve ler um número k e imprimir, antes e depois da ordenação, o k-ésimo
elemento da variável composta.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main (void)
{
int n;
printf("Digite o numero de termos do vetor: ");
scanf("%d", &n);
if(n>1000 || n<0)
{
printf("\nNumero de termos invalido");
}
else
{
int vetor[n],i,j,aux;
int repetidos[n];
int vezes[n];
int U[n];
int qtde, cont, cont_r=0,cont_u=0, k;
printf("Digite o valor de k para o k-esimo termo apresentado: ");
scanf("%d", &k);
for(i=0;i<n;i++)
{
printf("Digite o numero:");
scanf("%d",&vetor[i]);
}
printf("\nO %d-esimo termo antes da ordenacao: %d", k, vetor[k-1]);
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(vetor[j]>vetor[j+1])
{
aux= vetor[j];
vetor[j]=vetor[j+1];
vetor[j+1]=aux;
}
}
}
printf("\nVetor em ordem crescente:");
for(i=0;i<n;i++)
{
printf("%d ",vetor[i]);
}
printf("\nO %d-esimo termo depois da ordenacao: %d", k, vetor[k-1]);
for (i=0; i<n; i++)
{ qtde = 1;
for (j=0; j<i; j++)
{
if (i!=j)
{
if (vetor[i] == vetor[j])
qtde = qtde + 1;
}
}
if (qtde > 1)
{
cont = 0;
while (cont < cont_r && vetor[i]!=repetidos[cont])
{
cont = cont + 1;
}
if (cont == cont_r)
{
repetidos[cont_r] = vetor[i];
vezes[cont_r] = qtde;
cont_r = cont_r + 1;
}
else
vezes[cont] = vezes[cont]+1;
}
}
printf("\nRepetidos: ");
for (i=0; i<cont_r; i++)
{
printf("O numero %d apareceu %d",repetidos[i],vezes[i]);
}
for(i=0;i<n;i++)
{
j=0;
while(j<cont_u && vetor[i]!=U[j])
{
j++;
}
if(j>=cont_u)
{
U[cont_u]=vetor[i];
cont_u=cont_u+1;
}
}
printf("\nConjunto sem repeticao: ");
for(i=0;i<cont_u;i++)
{
printf("%d ",U[i]);
}
return 0;
}
}
13) Elabore um programa para automatizar as eleições do Centro Acadêmico do
curso de Ciência da Computação. Inicialmente, o programa deverá ler os nomes dos
N candidatos nas eleições. O programa deve contabilizar os votos da seguinte forma:
o usuário deverá digitar o nome do candidato. A eleição deve ser finalizada e o
vencedor indicado quando o usuário digitar a palavra “fim”.
#include<stdio.h>
#include<string.h>
int main(void)
{
char candidato[5][10], voto[10];
int i, j, cont[5], v=0;
for(i=0;i<5;i++)
{
printf("Digite o nome do %d candidato: ", i+1);
scanf("%s", &candidato[i]);
cont[i]=0;
}
while(1)
{
printf("\nDigite o nome do candidato em que voce vai votar: ");
scanf("%s", &voto);
if(strcmp(voto,"fim")==0)
{
break;
}
else
{
for(i=0;i<5;i++)
{
if(strcmp(voto, candidato[i])==0)
{
cont[i]=cont[i]+1;
}
}
}
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]);
}
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).
#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: ");
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:
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]);
}
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>
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.
#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;
}
}
}
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:");
scanf("%f",&notas[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;
}

Outros materiais