Você está na página 1de 13

Lista de exercício

1) Faça um programa que leia dois números inteiros, e efetue a adição. Caso o
resultado seja maior ou igual a 10, somar a ele mais 5 e mostrar o resultado; caso
contrário, subtrair dele 7 e mostrar o resultado.

/* Programa 01 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
int N1, N2, SOMA;
printf ("\n Digite 2 numeros inteiros: ");
scanf ("%d%d", &N1, &N2);
SOMA= N1 + N2;
if (SOMA >= 10)
SOMA = SOMA + 5;
else
SOMA = SOMA - 7;
printf ("\n O resultado eh %d\n", SOMA);
system("pause");
return(0);
}

2) Faça um programa que leia quatro números inteiros e apresente os números que
são divisíveis por 2 ou 3.

/* Programa 02 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
int N1, N2, N3, N4, RESTO;
printf ("\n Digite 4 numeros inteiros: ");
scanf ("%d%d%d%d", &N1, &N2, &N3, &N4);
if(N1 % 2 == 0 || N1 % 3 == 0 )
printf ("\n O numero %d eh divisivel por 2 ou 3\n", N1);
if (N2 % 2 == 0 || N2 % 3 == 0 )
printf ("\n O numero %d eh divisivel por 2 ou 3\n", N2);
if (N3 % 2 == 0 || N3 % 3 == 0 )
printf ("\n O numero %d eh divisivel por 2 ou 3\n", N3);
if (N4 % 2 == 0 || N4 % 3 == 0 )
printf ("\n O numero %d eh divisivel por 2 ou 3\n\n", N4);
system("pause");
return(0);
}

3) Faça um programa que leia um número e verifique se ele está entre 20 e 90, e
mostre a mensagem se ele está entre esta faixa ou não.

/* Programa 03 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
int N;
printf ("\n Digite um numero: ");
scanf ("%d", &N);
if (N >= 20 && N <= 90)
printf ("\n O numero %d esta na faixa de 20 a 90\n", N);
else
printf ("\n O numero %d nao esta na faixa de 20 a 90\n\n", N);
system("pause");
return(0);
}

4) Faça um programa que leia o sexo de uma pessoa (F/f/M/m), e imprima se é


“Feminino” ou “Masculino” ou “inválido”.

/* Programa 04 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
char S;
printf ("\n Digite o sexo: ");
fflush(stdin);
S = getchar();
if (S == 'f' || S == 'F') // aspas simples para caracter e duplas para string
printf ("\n O sexo eh Feminino \n");
else
if(S == 'm' || S == 'M')
printf ("\n O sexo eh Masculino \n");
else
printf ("\n O sexo eh invalido \n\n");
system("pause");
return(0);
}

5) Faça um programa que leia quatro valores referentes a quatro notas escolares
de um aluno e imprima a mensagem dizendo que o aluno foi aprovado, se o valor da
média escolar for maior ou igual a 7. Se o aluno não foi aprovado, apresente uma
mensagem informando esta condição. Apresente junto das mensagens o valor da
média do aluno para qualquer condição.

/* Programa 05 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
float n1, n2, n3, n4, media;
printf ("\n Digite 4 notas: ");
scanf ("%f%f%f%f", &n1, &n2, &n3, &n4);
media = (n1 + n2 + n3 + n4) / 4;
if (media >= 7)
printf ("\n Aluno aprovado com media %.2f\n\n", media);
else
printf ("\n Aluno reprovado com media %.2f\n\n", media);
system("pause");
return(0);
}

6) Faça um programa que leia três valores (variáveis A, B e C) e efetue o cálculo da


equação completa de segundo grau, apresentando as duas raízes, se para os valores
informados for possível efetuar o referido cálculo. Lembre-se de que a variável A deve
ser diferente de zero. Considere X1 e X2 as variáveis para as raízes. E use as
fórmulas:
X1 = -B + √Δ e X2 = -B - √Δ
2*A 2*A

Δ = B2 – 4 * A * C

/* Programa 06 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
system("color f0");
int A,B,C;
float X1,X2,DELTA;
printf ("\n Calcula as raizes de uma equacao do 2o. grau \n");
printf ("\n Digite A, B e C: ");
scanf ("%d %d %d", &A, &B, &C);
if(A == 0)
printf("\n A equacao nao eh de 2o. grau \n\n"); // É uma equação de 1º grau
else
{
DELTA = pow(B,2) - 4 * A * C;
if(DELTA < 0)
printf("\n A equacao possui raizes complexas \n\n"); // vamos calcular apenas
raízes reais
else
if(DELTA == 0)
{
X1 = -B / (2 * A);
printf("\n X1 = X2 = %.2f \n\n", X1);
}
else
{
X1 = (-B + sqrt(DELTA)) / (2 * A);
X2 = (-B - sqrt(DELTA)) / (2 * A);
printf("\n X1 = %.2f e X2 = %.2f \n\n", X1,X2);
}
}
system("pause");
return(0);
7) Faça um programa que simule uma calculadora com as 4 operações básicas
(Adição / Subtração / Multiplicação / Divisão).

/* Programa Calculadora */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
float N1, N2, RES;
char OP;
printf ("\n Calculadora das 4 operacoes basicas \n");
printf ("\n Digite um numero: ");
scanf ("%f", &N1);
printf ("\n Digite outro numero: ");
scanf ("%f", &N2);
printf ("\n Digite a operacao [+ – / *]: ");
fflush(stdin);
OP = getchar();
switch (OP)
{
case '+' : RES = N1 + N2; break;
case '–' : RES = N1 - N2; break;
case '*' : RES = N1 * N2; break;
case '/' : if (N2 != 0)
RES = N1 / N2;
else
printf ("\n Divisao por ZERO");
break;
default : printf ("\n Opcao Invalida");break;
}
if (OP == '+' || OP == '–' || OP == '*' || OP == '/')
printf ("\n %.1f %c %.1f = %.1f \n\n",N1,OP,N2,RES);
system("pause");
return(0);
}

8) Faça um programa que mostre um menu com a opção Promoção e Preço. Leia o
pedido de um cliente de fast food, baseado, no menu, e mostre a especificação que
ele escolheu. Use o comando Switch... Case

Opção Promoção Especificação Pre


1 Big Super Sanduba 2 hambúrgueres, queijo, batata frita e refrigerante 8,5
2 Quase Super Sanduba 1 hambúrguer, batata frita e refrigerante 6,0
3 Mirrandus Sanduba 1 misto quente e refrigerante 4,0

/* Programa Calculadora */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
int OP;
printf ("\n Menu de uma lanchonete \n");
printf ("\n 1 - Big Super Sanduba - R$ 8,50");
printf ("\n 2 - Quase Super Sanduba - R$ 6,00");
printf ("\n 3 - Mirrandus Sanduba - R$ 4,00");
printf ("\n Digite uma opcao: ");
scanf ("%d", &OP);
switch (OP)
{
case 1 : printf ("\n 2 hamburgueres, queijo, batata frita e refrigerante \n"); break;
case 2 : printf ("\n 1 hamburguer, batata frita e refrigerante \n"); break;
case 3 : printf ("\n 1 misto quente e refrigerante \n"); break;
default: printf ("\n Opcao Invalida \n");break;
}
system("pause");
return(0);
}

10) Faça um programa que leia o nome, a idade e o total de anos de profissão de
um professor. Caso a idade seja menor que 18 ou maior que 70 mostrar uma
mensagem informando que a idade está inválida. Caso o professor tenha até 2 anos
de profissão, mostrar uma mensagem informando que o Professor é novato. Caso
tenha de 3 a 30 anos, mostrar uma mensagem informando que o professor é
experiente. Caso o total de anos seja maior que 30, mostrar uma mensagem
informando que o professor já pode se aposentar.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
char nome[40];
int idade, tp;

printf ("\n Digite o nome: ");


fflush(stdin);
fgets(nome,40, stdin);

printf ("\n Digite a idade e anos de profissao: ");


scanf ("%d%d", &idade, &tp);

if (idade < 18 || idade > 70)


printf ("\n Idade invalida ");
else
if (tp <= 2)
printf ("\n Professor novato ");
else
if (tp <= 30)
printf ("\n Professor experiente ");
else
printf ("\n Professor já pode se aposentar ");

system("pause");
return(0);
}
11) Faça um programa que leia o nome, o sexo e as duas notas de um aluno na
disciplina LPI. Caso o sexo seja diferente de F ou M, informar que o sexo está inválido.
Calcule a média, se a média for inferior a 5,0 informar que o aluno foi reprovado. Caso
a média esteja entre 5 e 8 informar que o aluno foi regular na disciplina. Caso a média
seja maior que 8,0 informar que o aluno teve um excelente desempenho na disciplina.
Para qualquer condição mostre a média.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
char sexo, nome[40];
float n1, n2, m=0;

printf ("\n Digite o nome: ");


fflush(stdin);
fgets(nome,40, stdin);

printf ("\n Digite o sexo: ");


fflush(stdin);
sexo = getchar();

if (sexo != 'F' and sexo != 'f' and sexo != 'M' and sexo != 'm')
printf ("Sexo invalido \n");

printf ("\n Digite as duas notas: \n ");


scanf ("%f%f", &n1, &n2);
m = (n1 + n2)/2;

if (m < 5)
printf ("Aluno reprovado \n");
else
if (m <= 8)
printf ("Aluno regular \n");
else
printf ("Aluno excelente desempenho \n");

printf ("Media eh %.2f \n", m);

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

12) Faça um algoritmo que leia a velocidade máxima permitida em uma avenida e
a velocidade com que o motorista estava dirigindo nela. Caso a velocidade dirigida
seja menor ou igual a velocidade permitida enviar uma mensagem informado que o
motorista está dentro da lei, caso contrário, calcule e mostre uma mensagem
informando a multa que uma pessoa vai receber, sabendo que são pagos:
a. 50 reais se o motorista ultrapassar em até 10km/h a velocidade permitida (ex.:
velocidade máxima: 50km/h; motorista a 60km/h ou a 56km/h);
b. 100 reais, se o motorista ultrapassar de 11 a 30 km/h a velocidade permitida.
c. 200 reais, se estiver acima de 31km/h da velocidade permitida.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
float vm, v, d=0;
printf ("\n Digite a velocidade permitida e velocidade dirigida: \n");
scanf ("%f%f", &vm, &v);

d = (v - vm);
if (d > 0)
if (d <= 10)
printf (" Multa de R$ 50,00 \n");
else
if (d <= 30)
printf ("\n Multa de R$ 100,00 \n");
else
printf ("\n Multa de R$ 200,00 \n");
else
printf ("Está dentro da lei \n");

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

13) Escreva um algoritmo que leia as idades de 2 homens e de 2 mulheres


(considere que as idades dos homens serão sempre diferentes entre si, bem como as
das mulheres). Calcule e mostre a soma das idades do homem mais velho com a
mulher mais nova, e o produto das idades do homem mais novo com a mulher mais
velha.

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

int main(void)
{
system("color f0");
setlocale(LC_ALL, "Portuguese");
int idadem1, idadem2, idadeh1, idadeh2, s=0, p=0, hv=0, mv=0, hn=0, mn=0;

printf ("\n Digite as idades das duas mulheres: \n");


scanf ("%d%d", &idadem1, &idadem2);
printf ("\n Digite as idades dos dois homens: \n");
scanf ("%d%d", &idadeh1, &idadeh2);
if (idadem1 > idadem2)
{
mv = idadem1;
mn = idadem2;
}
else
{
mv = idadem2;
mn = idadem1;
}
if (idadeh1 > idadeh2)
{
hv = idadeh1;
hn = idadeh2;
}
else
{
hv = idadeh2;
hn = idadeh1;
}
s = (hv - mn);
p =(hn * mv);
printf ("A soma das idade é %d e o produto é %d \n", s, p);
system("pause");
return(0);
}

14) Sabendo que somente os municípios que possuem mais de 20.000 eleitores tem
segundo turno nas eleições para prefeito, caso o primeiro colocado não tenha mais do
que 50% dos votos, fazer um algoritmo que leia o nome do município, a quantidade de
eleitores aptos, o número de votos do candidato mais votado e informar se ele terá ou
não segundo turno na eleição.

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

int main(void)
{
system("color f0");
setlocale(LC_ALL, "Portuguese");
char nome[30];
int aptos=0, maisvotado=0;

printf ("\n Digite o nome: \n");


flush(stdin);
fgets(nome, 30, stdin);

printf ("\n Digite a quantidade de leitores aptos: \n");


scanf ("%d", &aptos);

printf ("\n Digite o número de votos do mais votado: \n");


scanf ("%d", &maisvotado);

if (aptos > 20000 && maisvotado <= aptos/2)


printf ("Tem segundo turno \n");
else
printf ("Não tem segundo turno \n");
system("pause");
return(0);
}
15) Fazer um algoritmo que leia o percurso em Km, o tipo do carro e informe o
consumo estimado de combustível, sabendo-se que um carro de tipo A faz 12 Km
com um litro de gasolina, tipo B, faz 9 Km e o tipo C faz 8 Km por litro.

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

int main(void)
{
system("color f0");
setlocale(LC_ALL, "Portuguese");
float p, c;
char tipo;

printf ("\n Digite o percurso em Km: ");


scanf("%f", &p);

printf ("\n Digite o tipo: ");


fflush(stdin);
tipo=getchar();

if (tipo == 'A' || tipo == 'a')


c = (p/12);
else
if (tipo == 'B' || tipo == 'b')
c = (p/9);
else
if (tipo == 'C' || tipo == 'c')
c = (p/9);
else
printf ("\n Tipo inválido ");

if (tipo == 'A' || tipo == 'a' || tipo == 'B' || tipo == 'b' || tipo == 'C' || tipo == 'c')
printf ("\n O consumo é %.2f \n", c);

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

16) Criar um algoritmo que leia o valor de x, calcule e mostre o valor de f(x), sendo
que: f(x) = 8 / (2 - x)

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

int main(void)
{
system("color f0");
setlocale(LC_ALL, "Portuguese");
float x, fx;

printf ("\n Digite o valor de x: ");


scanf("%f", &x);
if (x == 2)
printf ("\n Não pode dividir \n");
else
{
fx = 8 / (2 - x);
printf ("\n O valor de fx é %.2f \n", fx);
}

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

17) Faça um algoritmo que leia dois nomes de funcionários de uma empresa, os
números de cadastro, os números de pontos das vendas do último mês e números de
pontos do último semestre de cada um. Um deles deverá ser promovido, assim o
programa deverá mostrar o número do cadastro do funcionário que terá este benefício,
que deverá ser o que obtiver a maior a maior pontuação no somatório do número de
pontos da venda do último mês e o número de pontos da venda do último semestre.
Caso o somatório das pontuações seja igual, os critérios de desempate serão: o
candidato que possuir o maior tempo de serviço; caso os tempos de serviço sejam
iguais, será promovido o funcionário com a maior idade (sabe-se que as idades serão
diferentes).

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");

int cadastro, cadastro1, ps, ps1, ts, ts1, p, p1, i, i1;


char nome[30], nome1[30];

printf ("\n Digite o nome do funcionário: ");


fflush(stdin);
fgets(nome,30, stdin);
printf ("\n Digite o cadastro: ");
scanf ("%d", & cadastro);
printf ("\n Digite os pontos mensais: ");
scanf ("%d", &p);
printf ("\n Digite os pontos do semestre: ");
scanf ("%d", &ps);

printf ("\n Digite o nome do candidato: ");


fflush(stdin);
fgets(nome1,30, stdin);
printf ("\n Digite a cadastro: ");
scanf ("%d", &cadastro1);
printf ("\n Digite os pontos mensais: ");
scanf ("%d", &p1);
printf ("\n Digite os pontos do semestre: ");
scanf ("%d", &ps1);

if ( p + ps != p1+ ps1)
if ( p + ps > p1+ ps1)
printf ("\nO vencedor e %d ", cadastro);
else
printf ("\nO vencedor e %d ", cadastro1);
else
{
printf ("\n Digite o tempo: ");
scanf ("%d", &ts);
printf ("\n Digite o tempo: ");
scanf ("%d", &ts1);
if (ts > ts1)
printf ("\nO vencedor e %d ", cadastro);
else
if (ts1 > ts)
printf ("\nO vencedor e %d ", cadastro1);
else
{
printf ("\n Digite a idade: ");
scanf ("%d", &i);
printf ("\n Digite a idade: ");
scanf ("%d", &i1);
if (i > i1)
printf ("\nO vencedor e %d ", cadastro);
else
printf ("\nO vencedor e %d ", cadastro1);
}

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

18) Um comerciante calcula o valor da venda, tendo em vista a tabela abaixo. Criar um
programa que entre com o nome, o valor de compra e o tipo do produto (X, Y, Z). O
programa deverá mostrar o nome e o valor da venda. Caso o valor da compra seja
inferior ou igual a zero ou o tipo seja diferente de (X, Y ou Z), informar que o dado
digitado é inválido e não continuar o programa.

Valor da compra Valor da venda


Tipo X e o valor maior que R$ Lucro de 60%
200,00
Tipo X ou Y e o valor menor ou igual Lucro de 40%
que R$ 200,00
Tipo Y e valor maior que R$ 200,00 Lucro de 30%
Tipo Z e valor maior que R$ 100,00 Lucro de 20%
Tipo Z e valor menor ou igual que Lucro de 10%
R$ 100,00

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");

float vc, vv;


char nome[10], tipo;
printf ("\n Digite o nome do produto: ");
fflush(stdin);
fgets(nome,10, stdin);

printf ("\n Digite o tipo do produto: ");


fflush(stdin);
tipo=getchar();

printf ("\n Digite o valor da compra: ");


scanf ("%f", &vc);

if ((vc <= 0) || (tipo != 'X' && tipo != 'x' && tipo != 'Y' && tipo != 'y' && tipo != 'Z'
&& tipo != 'z'))
printf ("\n Valor inválido \n");
else
{
if ((tipo == 'X' || tipo == 'x') and (vc > 200))
vv = vc * 1.60;
else
if ((tipo == 'Y' || tipo == 'y') and (vc > 200))
vv = vc * 1.30;
else
if ((tipo == 'X' || tipo == 'x' || tipo == 'Y' || tipo == 'y') && (vc <= 200))
vv = vc * 1.40;
else
if ((tipo == 'Z'|| tipo == 'z') && (vc > 100))
vv = vc * 1.20;
else
vv = vc * 1.10;
printf ("\n O valor do produto %s é %.2f \n", nome, vv);
}
system("pause");
return(0);
}

19) Uma loja de conveniência está vendendo frutas com a seguinte tabela de
preços:
Até 5kg Acima de 5kg
Pêra R$ 4,50 por Kg R$ 4,20 por Kg
Uva R$ 3,80 por Kg R$ 3,50 por Kg

Se o cliente comprar mais de 8 Kg em frutas ou o valor total da compra ultrapassar


R$ 25,00, receberá ainda um desconto de 10% sobre este total. Escreva um
algoritmo para ler a quantidade (em Kg) de pêras e a quantidade (em Kg) de uvas
adquiridas por um cliente nesta loja e mostre o valor a ser pago por ele.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
float p, tp, u, tu, tot=0;
printf( "Digite o total de peras: ");
scanf ("%f", &p);
printf( "Digite o total de uvas: ");
scanf ("%f", &u);

if (p <= 5)
tp = p*4.50;
else
tp = p*4.20;
printf("\n O valor a ser pago de pera é: %.2f", tp);

if (u <= 5)
tu = u*3.80;
else
tu = u*3.50;
printf("\n O valor a ser pago de uva é: %.2f", tu);

tot = tp + tu;
if (u + p > 8 or tot > 25)
tot = tot - (tot * 0,10);

printf("\n O valor a ser pago é: %.2f", tot);


}

20) Escreva um algoritmo que leia a pontuação de 3 candidatos na prova 1 e na


prova 2 e mostre a pontuação do primeiro colocado. Ficará em primeiro lugar
aquele que tiver a maior pontuação no somatório das notas. Considere que não
haverá empate.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("color f0");
float n1, n11, n2, n22, n3, n33, S1, S2, S3, maior=0;
printf( "Digite as notas do primeiro candidato: ");
scanf ("%f", &n1, &n11);
printf( "Digite as notas do segundo candidato: ");
scanf ("%f", &n2, &n22);
printf( "Digite as notas do terceiro candidato: ");
scanf ("%f", &n3, &n33);
S1 = n1 + n11;
S2 = n2 + n22;
S3 = n3 + n33;
maior = S1;
if (S2 > maior)
maior = S2;
if (S3 > maior)
maior = S3;
printf("\n A maior pontuação é: %.2f", maior);
}

Você também pode gostar