Prévia do material em texto
Exercícios resolvidos – Sequencial – Linguagem C
01. Faça um algoritmo que leia dois valores inteiros e escreva a sua soma:
#include<stdio.h>
int main(){
int a,b,soma;
printf("Digite 2 valores");
scanf("%d%d",&a,&b);
soma=a+b;
printf("A soma é %d",soma);
return(0);
}
02. Faça um algoritmo que leia 3 valores reais, notas de um aluno, e escreva sua média
aritmética. Dica:A média aritmética de um conjunto de valores é dada pela soma dos valores
dividido pela quantidade de valores considerados. m=(v1+v2+v3)/3:
#include<stdio.h>
int main(){
float a,b,c,media;
printf("Digite as três notas: ");
scanf("%f%f%f",&a,&b,&c);
media=(a+b+c)/3;
printf("A média é %f\n",media);
return(0);
}
03. Faça um algoritmo que leia 2 valores reais v1 e v2 e calcule e escreva a área do triângulo
que tem base igual a v1 e altura igual a v2. Dica:A área de um triângulo é dada pela
expressão: (base x altura)/2:
#include<stdio.h>
int main(){
int v1,v2,area;
printf("Digite a base e a altura: ");
scanf("%d%d",&v1,&v2);
area=(v1*v2)/2;
printf("A área é %d",area);
return(0);
}
04. O coeficiente angular de um segmento de reta AB dado pelos pontos A(x1,y1) e B(x2,y2)
representa a inclinação do segmento de reta, e pode ser calculado por (y2-y1)/(x2-x1). Faça
um algoritmo que leia, para 3 pontos A, B e C, suas coordenadas x e y, e calcule e escreva
os coeficientes angulares das retas AB, BC e AC:
#include <stdio.h>
void main(){
int ax,ay,bx,by,cx,cy,ab,bc,ac;
scanf("%d%d%d%d%d%d",&ax,&ay,&bx,&by,&cx,&cy);
ab=(by-ay)/(bx-ax);
bc=(cy-by)/(cx-bx);
ac=(cy-ay)/(cx-ax);
printf("%d%d%d",ab,bc,ac);
}
05. O produto vetorial AxB de dois vetores A=[ax,ay] e B=[bx,by] é um vetor perpendicular
ao plano formado pelos vetores A e B, de módulo igual a |ax*by-ay*bx|. Faça um algoritmo
que leia as componentes ax,ay,bx e by dos vetores A e B, e calcule e escreva o módulo do
vetor resultante do produto vetorial:
#include <stdio.h>
#include <math.h>
void main(){
int ax,ay,bx,by,vetor;
scanf("%d%d%d%d",&ax,&ay,&bx,&by);
vetor=ax*by-ay*bx;
printf("%d",abs(vetor));
}
06. O produto escalar A.B de dois vetores A=[ax,ay,az...] e B=[bx,by,bz...] é dado pelo
somatório ax*bx+ay*by+az*bz+... Faça um algoritmo que leia as coordenadas
ax,ay,az,bx,by,bz de dois vetores no espaço tridimensional e calcule e escreva seu produto
escalar:
#include <stdio.h>
void main(){
int ax,ay,az,bx,by,bz,prod;
scanf("%d%d%d%d%d%d",&ax,&ay,&az,&bx,&by,&bz);
prod=(ax*bx)+(ay*by)+(az*bz);
printf("%d",prod);
}
07. Faça um algoritmo que leia 3 valores a, b e c, coeficientes de uma equação de segundo
grau, e calcule e escreva a soma das raízes da equação. Dica:As raízes de uma equação
podem ser calculadas pela fórmula de Baskhara:
#include <stdio.h>
#include <math.h>
void main(){
int a,b,c,r1,r2,d,soma;
scanf("%d%d%d",&a,&b,&c);
d=(b*b)-(4*a*c);
r1=((b*-1)+(sqrt(d)))/(2*a);
r2=((b*-1)-(sqrt(d)))/(2*a);
soma=(r1)+(r2);
printf("%d",soma);
}
08. Faça um algoritmo que leia 3 valores a, b e c, coeficientes de uma equação de segundo
grau, e calcule e escreva o produto (multiplicação) das raízes da equação. Dica:As raízes de
uma equação podem ser calculadas pela fórmula de Baskhara:
#include<stdio.h>
#include<math.h>
void main(){
int a,b,c,d,r1,r2,x;
scanf("%d%d%d", &a,&b,&c);
d=(b*b)-(4*a*c);
r1=((-b)-(sqrt(d)))/(2*a);
r2=((-b)+(sqrt(d)))/(2*a);
x=r1*r2;
printf("%d",x);
}
09. Faça um algoritmo que leia 2 valores e escreva o maior deles. Dica:O maior entre dois
valores quaisquer v1 e v2 pode ser calculado pela expressão (v1+v2+|v1-v2|)/2. O operador
matemático de módulo ( |x| ) é representado na nossa linguagem pela função abs(x)
#include<stdio.h>
int main(){
int v1,v2;
scanf("%d%d", &v1,&v2);
if (v1>v2)
printf ("%d é o maior",v1);
else
printf ("%d é o maior",v2);
return(0);
}
10. Faça um algoritmo que leia 2 valores e escreva o menor deles. Dica:O menor entre dois
valores pode ser obtido a partir do maior valor e da soma dos dois (por exemplo: Se a soma
de dois valores é 15 e o valor do maior é 10, como pode ser calculado o valor do menor?).
#include<stdio.h>
#include<math.h>
void main(){
int a,b;
scanf("%d%d", &a,&b);
if(a<b){
printf("%d",a);
}
else{
printf("%d",b);
}
}
11. Faça um algoritmo que leia 3 valores escreva o maior deles. Dica:O maior entre três
valores pode ser encontrado pela aplicação repetida da expressão para encontrar o maior
entre dois valores.
#include<stdio.h>
#include<math.h>
void main(){
int a,b,c;
scanf("%d%d%d", &a,&b,&c);
if(a>b && a>c){
printf("%d",a);
}
else if(b>a && b>c){
printf("%d",b);
}
else{
printf("%d",c);
}
}
12. Faça um algoritmo que lê um valor inteiro em reais e calcula e escreve qual o menor
número possível de notas de 100,50,20,10,5,2 e 1 real em que o valor pode ser decomposto.
Dica:Isso pode ser calculado a partir de operações de divisão inteira.
#include <stdio.h>
void main(){
int notas1, notas2, notas5, notas10, notas20, notas50,
notas100, valor;
printf("Informe o valor: ");
scanf("%d", &valor);
notas100 = valor / 100;
valor = valor % 100;
notas50 = valor / 50;
valor = valor % 50;
notas20 = valor / 20;
valor = valor % 20;
notas10 = valor / 10;
valor = valor % 10;
notas5 = valor / 5;
valor = valor % 5;
notas2 = valor / 2;
notas1 = valor % 2;
printf("%d notas de 100, %d notas de 50, %d notas de 20, %d
notas de 10, %d notas de 5, %d notas de 2 e %d notas de 1",
notas100,notas50,notas20,notas10,notas5,notas2,notas1);
}
13. Faça um algoritmo que lê uma quantia inteira em segundos e escreva o número de horas,
minutos e segundos correspondente. Dica:Para converter segundos para minutos usa-se a
divisão inteira por 60.
#include <stdio.h>
void main(){
int horas,minutos,segundos,valor;
printf("Informe o valor: ");
scanf("%d", &valor);
horas=valor/3600;
valor=valor%3600;
minutos=valor/60;
segundos=valor%60;
printf("%d horas, %d minutos, %d
segundos",horas,minutos,segundos);
}
14. Faça um algoritmo que lê 3 valores, lados de um triângulo, e calcule e escreva a área do
triângulo formado. Dica:A área de um triângulo de lados a, b e c pode ser calculada pela
expressão Área=raiz(S*(S-a)*(S-b)*(S-c)), onde S é o semi-perímetro, ou seja, a metade da
soma dos lados:
#include<stdio.h>
#include<math.h>
void main(){
int a,b,c,ar,s;
scanf("%d%d%d", &a,&b,&c);
s=(a+b+c)/2;
ar=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%d",ar);
}
15. Faça um algoritmo que leia 3 valores v1, v2 e v3, e troque os valores entre si de modo
que ao final a variável v2 contenha o valor que foi lido para v1, a variável v3 contenha o
valor que foi lido para v2, e a variável v1 contenha o valor que foi lido para a variável v3.
Dica:Para trocar os valores de duas variáveis (digamos v1 e v2) entre si, salva-se o valor de
uma delas (p.ex., v1) em uma variável auxiliar qualquer (p.ex., aux) , copia-se o valor da
segunda (v2) para a variável que foi salva (v1), e copia-se o valor da variável auxiliar (que
contem o valor original da primeira), para a segunda variável:
#include<stdio.h>
#include<math.h>
void main(){
int v1,v2,v3,aux;
scanf("%d%d%d", &v1,&v2,&v3);
aux=v2;
v2=v1;
v1=v3;
v3=aux;
printf("%d%d%d", v1,v2,v3);
}
16. Faça um algoritmo que leia 4 valores, Hi, Mi, Hf, Mf, representandorespectivamente a
hora e minuto inicial e final de um evento, e calcule a duração do mesmo em horas e minutos.
Considere que o evento inicia e termina no mesmo dia. Dica: Para simplificar o problema,
converta cada par de valores em um único valor em minutos:
#include <stdio.h>
void main(){
int hi, mi, hf, mf, dh, dm;
scanf("%d%d%d%d", &hi,&mi,&hf,&mf);
if(mi>mf){
dm=(mf+60)-mi;
dh=(hf-hi)-1;
}
else if(mf>mi){
dm=mf-mi;
dh=hf-hi;
}
printf("%d%d",dh,dm);
}
17. Faça um algoritmo que leia dois horários (hora, minuto e segundo) e escreva quantos
segundos transcorreram entre esses dois horários.
#include <stdio.h>
void main(){
int hi, mi, si, hf, mf, sf, s;
scanf("%d%d%d%d%d%d", &hi,&mi,&si,&hf,&mf,&sf);
hi=hi*3600;
hf=hf*3600;
mi=mi*60;
mf=mf*60;
s=(hf+mf+sf)-(hi+mi+si);
printf("%d",s);
}
18. Faça um algoritmo que leia a quantidade de alunos em uma sala de aula e a quantidade
de alunos por grupo, e calcule e escreva quantos grupos serão formados e o resto de alunos
que não foram suficientes para formar mais um grupo:
#include <stdio.h>
void main(){
int a,ag,g,x;
scanf("%d%d", &a,&ag);
g=a/ag;
x=a%ag;
printf("%d%d",g,x);
}
19. Faça um algoritmo que leia 5 números inteiros e escreva a quantidade deles que são
pares. Dica: Um número é par se o resto da sua divisão por 2 é zero.
#include <stdio.h>
void main(){
int v[5],s=0,i;
for(i=0;i<5;i++){
scanf("%d", &v[i]);
}
for(i=0;i<5;i++){
if(v[i]%2==0){
s++;
}
}
printf("%d",s);
}
20. Uma autolocadora aluga seus carros com uma taxa fixa por dia mais uma taxa por km
rodado, e oferece desconto percentual sobre a taxa fixa de aluguel por dia. Escrever um
algoritmo que lê a taxa fixa por dia (em reais), o percentual de desconto na taxa fixa por dia,
a taxa por Km rodado (em reais), o número de dias e o número de Km rodados.
O algoritmo deve calcular e escrever: o valor total do aluguel (já aplicado o desconto), o
percentual de desconto, o valor do desconto em reais, o número de dias, e a quilometragem
rodada. Dica: O desconto incide apenas sobre a taxa diária
#include <stdio.h>
void main(){
int tfixa,pdesconto,tkm,dias,km,
totalcdesconto,valordesconto;
scanf("%d%d%d%d%d",&tfixa,&pdesconto,&tkm,&dias,&km);
valordesconto=(tfixa*dias)/pdesconto;
totalcdesconto=((tkm*km)+(tfixa*dias)-valordesconto);
printf("%d%d%d%d%d",totalcdesconto, pdesconto,
valordesconto, dias, km);
}