Você está na página 1de 61

EXERCCIOS DE LGICA DE

PROGRAMAO EM C

PROFESSOR: Claudinei Dias


ALUNOS: GUILHERME FRANZOI E JOO ANTONIO MEDEIROS
ENGENHARIA MECNICA TURMA A

2. Escreva um algoritmo para ler um nmero positivo qualquer, calcular e escrever


o quadrado e a raiz quadrada do mesmo.

#include<stdio.h>

#include<stdlib.h>

#include <math.h>

int main()

float num, quad, raiz;

printf("Insira um numero positivo \n");

scanf("%f", &num);

if(num>0)

quadrado = (num*num);

raiz = (sqrt(num));

printf("A raiz de %.2f eh %.2f \n", num, raiz);

printf("O quadrado de %.2f eh %.2f \n", num, quad);


}

else

printf("Insira um numero positivo \n");

system("pause");

4. Escrever um algoritmo para calcular os sucessivos valores de "E" usando a srie


abaixo e considerando primeiro 3 termos, depois 4 termos e finalmente 5 termos:

#include<stdio.h>

#include<stdlib.h>

int fatorial(int num)

int i,f;

f=num;

for(i=num-1;i>1;i--)

f=f*(i);

return f;

int main ()

{
float E;

E=1+1+(1/fatorial(2))+(1/fatorial(3));

printf("Somando apenas os 3 primeiros termos temos: %f \n",E);

E=1+1+(1/fatorial(2))+(1/fatorial(3))+(1/fatorial(4));

printf("Somando apenas os 4 primeiros termos temos: %f \n",E);

E=1+1+(1/fatorial(2))+(1/fatorial(3))+(1/fatorial(4))+(1/fatorial(5));

printf("Somando apenas os 5 primeiros termos temos: %f \n",E);

system("pause");

6. Escrever um algoritmo que l 3 valores a, b, c que so lados de um tringulo e


calcule a rea deste tringulo.
s( s a)( s b )(s c )

onde s = semi-permetro

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main ()

int a,b,c,s;

float area;
printf("Digite os 3 lados do triangulo: \n");

scanf("%i",&a);

scanf("%i",&b);

scanf("%i",&c);

s=a+b+c;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("A area do triangulo eh: %f \n\n",area);

system("pause");

8. Escrever um algoritmo que l um conjunto de 4 valores i, a, b, c, onde i um


valor inteiro e positivo e a, b, c, so quaisquer valores reais e os escreva. A
seguir:
Se i = 1 escrever os 3 valores a, b, c em ordem crescente.
Se i = 2 escrever os 3 valores a, b, c em ordem decrescente.
Se i = 3 escrever os 3 valores de forma que o maior valor entre a, b, c fica entre
os outros 2.

#include<stdio.h>

#include<stdlib.h>

int main ()

int i,a,b,c;

printf("Digite 1 para ordem crescente ");

printf("Digite 2 para ordem decrescente ");


printf("Digite 3 para colocar o maior valor no meio");

printf("Escolha 1, 2 ou 3: \n");

scanf("%i",&i);

printf("Digite um primeiro valor: \n");

scanf("%i",&a);

printf("Digite um segundo valor: \n");

scanf("%i",&b);

printf("Digite um terceiro valor: \n");

scanf("%i",&c);

switch(i)

case 1:

if(a<b)

if(b<c)

printf("A ordem crescente : %i , %i , %i \n", a,b,c);

else

if(a<c)

printf("A ordem crescente : %i , %i , %i \n", a,c,b);

else

printf("A ordem crescente : %i , %i , %i \n", c,a,b);

else

if(b<c)
{

if(a<c)

printf("A ordem crescente : %i , %i , %i \n", b,a,c);

else

printf("A ordem crescente : %i , %i , %i \n", b,c,a);

else

printf("A ordem crescente : %i , %i , %i \n", c,b,a);

break;

case 2:

if(a>b)

if(b>c)

printf("A ordem decrescente : %i , %i , %i \n", a,b,c);

else

if(a>c)

printf("A ordem decrescente : %i , %i , %i \n", a,c,b);

else

printf("A ordem decrescente : %i , %i , %i \n", c,a,b);

else

if(b>c)
{

if(a>c)

printf("A ordem decrescente : %i , %i , %i \n", b,a,c);

else

printf("A ordem decrescente : %i , %i , %i \n", b,c,a);

else

printf("A ordem decrescente : %i , %i , %i \n", c,b,a);

break;

case 3:

if(a>b)

if(a>c)

printf("O maior valor est no meio: %i , %i , %i \n", b,a,c);

else

printf("O maior valor est no meio: %i , %i , %i \n", b,c,a);

else

if (b>c)

printf("O maior valor est no meio: %i , %i , %i \n", a,b,c);

else

printf("O maior valor est no meio: %i , %i , %i \n", b,c,a);

break;
default:

printf("Valor invalido");

system("pause");

10. Escrever um algoritmo que l 3 comprimentos de lados a, b, c e os ordena em


ordem decrescente, de modo que o a represente o maior dos 3 lados lidos.
Determine, a seguir, o tipo de tringulo que estes 3 lados formam, com base
nos seguintes casos escrevendo sempre os valores lidos e uma mensagem
adequada:
Se a > b + c no formam tringulo algum.
Se a2 = b2 + c2 formam um tringulo retngulo.
Se a2 > b2 + c2 formam um tringulo obtusngulo.
Se a2 < b2 + c2 formam um tringulo acutngulo.
Se forem todos iguais formam um tringulo equiltero.
Se a = b ou b = c ou a = c ento formam um tringulo issceles

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main ()

int a,b,c,aux;

printf("Digite trs medidas de lado: \n");

scanf("%i",&a);

scanf("%i",&b);

scanf("%i",&c);

if ((a>b) && (a>c))


a=a;

else

if ((b>a) && (b>c))

aux = a;

a = b;

b = aux;

else if((c>a) && (c>b))

aux = a;

a = c;

c = aux;

if ((a=b) && (b=c))

printf("O triangulo eh equilatero \n");

if((a*a)=((b*b)+(c*c)))

printf("O triangulo eh do tipo retangulo");

else

if((a*a)>((b*b)+(c*c)))

printf("O triangulo eh obtusangulo");

else
printf("O triangulo eh acutangulo");

else

if (a>(b+c))

printf("Nenhum triangulo eh formado");

else

if((a=b) || (a=c) || (b=c))

printf("O triangulo eh isosceles \n");

if((a*a)=((b*b)+(c*c)))

printf("O triangulo eh do tipo retangulo");

else

if((a*a)>((b*b)+(c*c)))

printf("O triangulo eh obtusangulo");

else

printf("O triangulo eh acutangulo");

else

printf("O tringulo eh escaleno");


if((a*a)=((b*b)+(c*c)))

printf("O triangulo eh do tipo retangulo");

else

if((a*a)>((b*b)+(c*c)))

printf("O triangulo eh obtusangulo");

else

printf("O triangulo eh acutangulo");

system("pause");

12. Escrever um algoritmo que l o nmero de um funcionrio, o nmero de horas


por ele trabalhadas, o valor que recebe por hora, o nmero de filhos com idade
inferior a 14 anos, a idade, o tempo de servio do funcionrio e o valor do salrio
famlia por filho.
Calcular o salrio bruto, o desconto do INSS (8,5% do salrio bruto) e o salrio
famlia.
Calcular o IR (Imposto de Renda) como segue:
Se Salrio Bruto > 1.500,00 ento IR = 15% do SB
Se Salrio Bruto > 500,00 e SB <= 1.500,00 ento IR = 8% do SB
Se salrio Bruto <= 500,00 ento IR = 0
Calcular o adicional conforme especificado:
Se idade superior a 40 anos ADIC = 2% do SB
Se tempo de servio superior a 15 anos ADIC = 3.5% do SB
Se tempo de servio < 15 anos mas superior a 5 anos e idade maior do que 30 anos
ento ADIC = 1,5% do SB.
Calcular o salrio lquido. Escrever o nmero do funcionrio, salrio bruta, total
dos descontos, adicional e salrio lquido.

#include <stdio.h>

#include <stdlib.h>
#include <math.h>

int main()

int nFunc,nHoras,vrHora,nFilhos,idade,tServico,vsFamilia;

float
sBruto,descINSS,sFamilia,iR,adic1,adic2,adic3,sLiquido,adicionais,descontos;

printf("Digite o numero do funcionario: \n");

scanf("%i",nFunc);

printf("Digite o numero de horas trabalhadas: \n");

scanf("%i",nHoras);

printf("Digite o valor recebido por hora: \n");

scanf("%i",vrHora);

printf("Digite o numero de filhos menores de 14 anos do funcionario: \n");

scanf("%i",nFilhos);

printf("Digite a idade do funcionario: \n");

scanf("%i",idade);

printf("Digite o tempo de servico em anos do funcionario: \n");

scanf("%i",tServico);

printf("Digite o valor do salario familia por filho do funcionario: \n");

scanf("%i",vsFamilia);

sBruto = (nHoras*vrHora);

descINSS = (0.085*sBruto);

sFamilia = (nFilhos*vsFamilia);

if (sBruto>1500)
iR = (0.15*sBruto);

if ((sBruto<=1500) && (sBruto>500))

iR = (0.08*sBruto);

if (sBruto<=500)

iR = 0;

if (idade>40)

adic1 = (0.02*sBruto);

if (tServico>15)

adic2 = (0.035*sBruto);

if ((tServico<=15) && (tServico>=5) && (idade>30))

adic3 = (0.015*sBruto);

sLiquido = (sBruto-descINSS+sFamilia-iR+adic1+adic2+adic3);

adicionais = (adic1+adic2+adic3);

descontos = (iR+descINSS);

printf("O funcionario numero %i \n",nFunc);

printf("Possui salario bruto de %f \n",sBruto);

printf("Um total de desconto de %f \n",descontos);

printf("Um total de adicionais de %f \n", adicionais);

printf("E, portanto, um salario liquido de \n", sLiquido);

system("pause");

14. A empresa Enxuga Gelo SA decidiu conceder um aumento de salrios a seus


funcionrios de acordo com a tabela abaixo:
Salrio Atual ndice De Aumento
0 - 400,00 15%
400,01 - 700,00 12%
700,01 - 1.000,00 10%
1.000,01 - 1.800,00 7%
1.800,01 - 2.500,00 4%
acima de 2.500,00 sem aumento

Escrever um algoritmo que l, para cada funcionrio, o seu nmero e o seu salrio
atual e escreve o numero do funcionrio, seu salrio atua1, o percentual de seu
aumento e o valor do salrio corrigido.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

int nFunc,sAtual,nSalario;

printf("Digite o numero do funcionario: \n");

scanf("%i", &nFunc);

printf("Digite o salario atual do funcionario: \n");

scanf("%i",&sAtual);

if((sAtual>=0) && (sAtual<=400))

nSalario = (sAtual+(0.15*sAtual));

printf("O funcionario %i \n",nFunc);

printf("Que tem o salario de %i \n",sAtual);

printf("Teve um reajuste de 15 por cento \n");


printf("E seu novo salario eh de %i \n",nSalario);

if((sAtual>=400.01) && (sAtual<=700))

nSalario = (sAtual+(0.12*sAtual));

printf("O funcionario %i \n",nFunc);

printf("Que tem o salario de %i \n",sAtual);

printf("Teve um reajuste de 12 por cento \n");

printf("E seu novo salario eh de %i \n",nSalario);

if((sAtual>=700.01) && (sAtual<=1000))

nSalario = (sAtual+(0.1*sAtual));

printf("O funcionario %i \n",nFunc);

printf("Que tem o salario de %i \n",sAtual);

printf("Teve um reajuste de 10 por cento \n");

printf("E seu novo salario eh de %i \n",nSalario);

if((sAtual>=1000.01) && (sAtual<=1800))

nSalario = (sAtual+(0.07*sAtual));

printf("O funcionario %i \n",nFunc);

printf("Que tem o salario de %i \n",sAtual);

printf("Teve um reajuste de 7 por cento \n");


printf("E seu novo salario eh de %i \n",nSalario);

if((sAtual>=1800.01) && (sAtual<=2500))

nSalario = (sAtual+(0.04*sAtual));

printf("O funcionario %i \n",nFunc);

printf("Que tem o salario de %i \n",sAtual);

printf("Teve um reajuste de 4 por cento \n");

printf("E seu novo salario eh de %i \n",nSalario);

if(sAtual>=2500.01)

printf("O funcionario %i \n",nFunc);

printf("Que tem o salario de %i \n",sAtual);

printf("Nao teve reajuste e seu salario permanece o mesmo \n");

system("pause");

16. Escrever um algoritmo que l 5 valores para a, um de cada vez, e conta quantos
destes valores so negativos, escrevendo esta informao.

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

#include<math.h>

int main()

int x,y,cont=0;

for(x=0;x<5;x++)

printf("Digite um numero: \n");

scanf("%i",&y);

if(y<0)

cont++;

printf("A quantidade de numeros negativos eh: %i \n", );

system("pause");

20. Escrever um algoritmo que gera os 30 primeiros termos da Srie de Fibonacci


e escreve os termos gerados com a mensagem: " primo" ou "no primo"
conforme o caso.

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

int main()

int a,b,c,i,k,divExato;

a=0;

b=1;

printf("Serie de Fibonacci: \n");

printf("1");

printf("Eh primo");

for(i=0;i<29;i++)

c=a+b;

a=b;

b=c;

printf("%i \n",c);

for(k=1;k<=c;k++)

if((c%k)==0)

divExato++;

}
if(divExato>2)

printf("Nao eh primo");

else

printf("Eh primo");

system("pause");

22. Escrever um algoritmo que l um nmero no determinados de valores a, todos


inteiros e positivos, um de cada vez, e calcule e escreva a mdia aritmtica dos
valores lidos, a quantidade de valores pares, a quantidade de valores impares, a
percentagem de valores pares e a percentagem de valores mpares.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

int a,contA=-1,soma=0,contPar=0,contImpar=-1;

float media,Par,Impar;

while(a!=999)

{
printf("Digite um numero inteiro e positivo ou 999 para sair: \n");

scanf("%i",&a);

if(a>0)

contA++;

soma=(soma+a);

media=((soma-999)/contA);

if((a%2)==0)

contPar++;

if((a%2)!=0)

contImpar++;

else

printf("Seu numero nao eh positivo e/ou inteiro \n");

pPar=((contPar/contA)*100);
pImpar=((contImpar/contA)*100);

printf("A media dos valores eh: %i \n",media);

printf("A quantidade de numeros pares eh %i \n",contPar);

printf("A porcentagem de valores pares eh %f \n",Par);

printf("A quantidade de numeros impares eh %i \n",contImpar);

printf("A porcentagem de valores pares eh %f \n",Impar);

system("pause");

24. Escrever um algoritmo que l 5 conjuntos de 4 valores a, b, c, d, um conjunto


por vez e os escreve assim como foram lidos. Em seguida, ordene-os em ordem
decrescente e escreva-os novamente.

#include<stdio.h>

#include<stdlib.h>

int main()

int i,k,A[4],j,aux;

for(k=0;k<5;k++)

for(i=0;i<4;i++)

printf("Digite um numero: \n");

scanf("%i",&A[i]);

}
for(i=0;i<4;i++)

printf("%i \t",A[i]);

for(j=4;j>0;j--) //bubble sort

for(i=0;i<j;i++)

if(A[i]<A[i+1])

aux=A[i];

A[i]=A[i+1];

A[i+1]=aux;

for(i=0;i<4;i++)

printf("%i \t",A[i]);

system("pause");

}
26. Escrever um algoritmo que l 5 pares de valores a, b, todos inteiros e positivos,
um par de cada vez, e com a < b, e escreve os inteiros pares de a at b, incluindo o a
e b se forem pares.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

int i,j,num,A[2],aux;

for(i=0;i<5;i++)

for(j=0;j<2;j++)

printf("Digite um valor inteiro positivo: \n");

scanf("%i",&A[i]);

if((A[0] && A[1])>0)

if(A[0]<A[1])

for(num=A[0];num<=A[1];num++)

if((num%2)==0)

{
printf("%i eh numero par entre %i e %i",num,A[0],A[1]);

else

aux=A[1];

A[1]=A[0];

A[0]=aux;

for(num=A[0];num<=A[1];num++)

if((num%2)==0)

printf("%i eh numero par entre %i e %i",num,A[0],A[1]);

else

printf("Algum numero digitado nao eh positivo \n");

system("pause");

28. Escrever um algoritmo que l, para cada vendedor de uma empresa, o seu
nmero de identificao, seu salrio fixo e o total de vendas em reais por ele
efetuadas. Cada vendedor recebe um salrio fixo e uma comisso proporcional s
vendas por ele efetuadas. A comisso de 3% sobre o total de vendas at $ 1.000,00
e 5% sobre o que ultrapassa este valor. Escrever, para cada vendedor, o seu
nmero de identificao, o total de suas vendas, seu salrio fixo e seu salrio total.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

int nFunc;

float fixo,total,vendas;

if((vendas>=0) && (vendas<=1000))

sTotal=(fixo+(vendas*0.03));

if((vendas>1000))

total=(fixo+30+(0.05*(vendas-1000)));

printf("O funconario %i \n",nFunc);

printf("Tem salario fixo de %f \n",fixo);

printf("Seu total de vendas foi %f \n",vendas);

printf("E seu salario total eh de %f \n",total);

system("pause");

}
30. Escrever um algoritmo que gera e escreve os 5 primeiros nmeros perfeitos.
Um nmero perfeito aquele que igual a soma dos seus divisores. (Ex.: 6 = l + 2 +
3; 28 = 1 + 2 + 4 + 7 + 14 etc.).

#include<stdio.h>

#include<stdlib.h>

int main()

int cont=0,soma=0,j,num;

while(cont<=5)

for(num=0;num<1000;num++)

for(j=1;j<num;j++)

if((num%j)==0)

soma=soma+j;

if(num==soma)

printf("%i eh numero perfeito",num);

cont++;

}
system("pause");

32. Escrever um algoritmo que gera os nmeros de 1000 a 1999 e escreve aqueles
que divididos por 11 do um resto igual a 5.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

int num;

for(num=1000;num<1999;num++)

if((num%11)==5)

printf("%i\n",num);

system("pause");

34. Escrever um algoritmo que calcula e escreve o produto dos nmeros primos
entre 92 e 1478.

#include<stdio.h>

#include<stdlib.h>
#include<math.h>

int main()

int i,j,primo,divExato,produto=1;

for(i=92;i<1478;i++)

for(j=1;j<i;j++)

if((i%j)==0)

divExato=j

if(divExato==2)

primo=i

produto=produto*primo;

printf("O produto dos numeros primos eh %i",produto);

system("pause");

36. Supondo que a populao de um pas A seja da ordem de 90.000.000 de


habitantes com uma taxa anual de crescimento de 3,1% e que a populao de um
pas B seja de 200.000.000 de habitantes com uma taxa anua1 de crescimento de
1,5%, escrever um algoritmo que calcula quantos anos sero necessrios para que
a populao do pas A ultrapasse a do pas B, mantidas as taxas atuais de
crescimento.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

double popA=90000000,popB=200000000,ano,contAno=0;

while(contAno<=1)

for(ano=1;ano<1000;ano++)

popA=popA+(popA*0.0031);

popB=popB+(popB*0.0015);

if(popA>popB)

printf("Sao necessarios %lf anos para a populacao de A ultrapassar a


de B \n",ano);

contAno++;

}
system("pause");

38. Escrever um algoritmo que l um vetor X(100) e o escreve. Substitua, a seguir,


todos os valores nulos de X por 1 e escreva novamente o vetor X.

#include<stdio.h>

#include<stdlib.h>

int main()

int X[100],i;

for(i=0;i<100;i++)

printf("Digite um numero: \n");

scanf("%i",&X[i]);

for(i=0;i<100;i++)

printf("%i \t", X[i]);

printf("\n\n\n\n");

for(i=0;i<100;i++)
{

if(X[i]==0)

X[i]=1;

for (i=0;i<100;i++)

printf("%i \t", X[i]);

system("pause");

40. Escrever um algoritmo que l um vetor N[80] e o escreve. Encontre, a seguir, o


menor elemento e a sua posio no vetor N e escreva: o menor elemento de n = ,
M, e a sua posio = , P.

#include<stdio.h>

#include<stdlib.h>

int main()

int N[80],i,menor,p;

for(i=0;i<80;i++)
{

printf("Digite um numero: \n");

scanf("%i",&N[i]);

for(i=0;i<80;i++)

printf("%i \t", N[i]);

printf("\n\n\n\n");

menor = N[0];

for(i=0;i<80;i++)

if(N[i]<menor)

menor = N[i];

p=i;

printf("O menor elemento de n eh %i e a sua posicao eh %i \n\n", menor, p);

system("pause");

}
42. Escrever um algoritmo que l um vetor N[20] e o escreve. Troque, a seguir, o 1
elemento com o ltimo, o 2 com o penltimo, etc., at o 10 com o 11 e escreva o
vetor N assim modificado.

#include<stdio.h>

#include<stdlib.h>

int main()

int N[20],i,aux;

for(i=0;i<20;i++)

printf("Escreva um numero: \n");

scanf("%i",&N[i]);

for(i=0;i<20;i++)

printf("%i \t",N[i]);

printf("\n\n\n\n");

for(i=0;i<10;i++)

aux=N[i];

N[i]=N[20-(i+1)];

N[20-(i+1)]=aux;
}

for(i=0;i<20;i++)

printf("%i \t",N[i]);

system("pause");

44. Escrever um algoritmo que l um vetor N[20] e o escreve. Troque, a seguir, o 1


elemento com 11, o 2 com o 12, etc., at o 10 com o 20 e escreva o vetor assim
modificado.

#include<stdio.h>

#include<stdlib.h>

int main()

int N[20],i,aux;

for(i=0;i<20;i++)

printf("Digite um numero: \n");

scanf("%i",&N[i]);

for(i=0;i<20;i++)

printf("%i \t",N[i]);
}

printf("\n\n\n\n");

for(i=0;i<10;i++)

aux=N[i];

N[i]=N[i+10];

N[i+10]=aux;

for(i=0;i<20;i++)

printf("%i \t",N[i]);

system("pause");

46. Escrever um algoritmo que l 2 vetores K[10] e N[10] e os escreve. Crie, a


seguir, um vetor M que seja a diferena entre K e N (M = K - N) e escreva o vetor
M.

#include<stdio.h>

#include<stdlib.h>

int main()

int K[10],N[10],M[10],i,j,k;
for(i=0;i<10;i++)

printf("Digite um numero: \n");

scanf("%i",&K[i]);

for(i=0;i<10;i++)

printf("%i \t",K[i]);

for(j=0;j<10;j++)

printf("Digite um numero: \n");

scanf("%i",&N[j]);

for(j=0;j<10;j++)

printf("%i \t",N[j]);

printf("\n\n\n\n");

for(k=0;k<10;k++)

M[k]=K[k]-N[k];

printf("%i \t", M[k]);


}

system("pause");

48. Escrever um algoritmo que l, um vetor V[20] e o escreve. Compacte, a seguir, o


vetor Y, retirando dele todos os valores nulos ou negativos e escreva o vetor
compactado.

#include<stdio.h>

#include<stdlib.h>

int main()

int V[20],i,contNulo=0,Y[20],j,aux;

for(i=0;i<20;i++)

printf("Digite um numero: \n");

scanf("%i",&V[i]);

for(i=0;i<20;i++)

printf("%i \t",V[i]);

printf("\n\n\n\n");
for(j=0;j<20;j++)

Y[j]=V[j];

for(j=0;j<20;j++)

if(Y[j]>0)

printf("%i \t",Y[j]);

system("pause");

50. Escreva um algoritmo que l um conjunto de 30 valores e os coloca em 2


vetores conforme forem pares ou impares. O tamanho dos vetores de 5 posies.
Se algum vetor estiver cheio, escreve-lo. Terminada a leitura escrever o contedo
dos 2 vetores. Cada vetor pode ser preenchido tantas vezes quantas for necessrio.

#include<stdio.h>

#include<stdlib.h>

int main()

int
i,A[30],Pu[5],Pd[5],Pt[5],Pq[5],Pc[5],Ps[5],Iu[5],Id[5],It[5],Iq[5],Ic[5],Is[5],con
tP=0,contI=0,cpu=0,cpd=0,cpt=0,cpq=0,cpc=0,cps=0,ciu=0,cid=0,cit=0,ciq=0,ci
c=0,cis=0;

for(i=0;i<30;i++)
{

printf("Digite um numero: \n");

scanf("%i",&A[i]);

for(i=0;i<30;i++)

if((A[i]%2)==0)

if((contP>=0)&&(contP<5))

Pu[contP]=A[i];

cpu++;

if((contP>=5)&&(contP<10))

Pd[contP-5]=A[i];

cpd++;

if((contP>=10)&&(contP<15))

Pt[contP-10]=A[i];

cpt++;

if((contP>=15)&&(contP<20))

Pq[contP-15]=A[i];
cpq++;

if((contP>=20)&&(contP<25))

Pc[contP-20]=A[i];

cpc++;

if((contP>=25)&&(contP<30))

Ps[contP-25]=A[i];

cps++;

contP++;

else

if((contI>=0)&&(contI<5))

Iu[contI]=A[i];

ciu++;

if((contI>=5)&&(contI<10))

Id[contI-5]=A[i];

cid++;

if((contI>=10)&&(contI<15))
{

It[contI-10]=A[i];

cit++;

if((contI>=15)&&(contI<20))

Iq[contI-15]=A[i];

ciq++;

if((contI>=20)&&(contI<25))

Ic[contI-20]=A[i];

cic++;

if((contI>=25)&&(contI<30))

Is[contI-25]=A[i];

cis++;

contI++;

for(i=0;i<5;i++)

if(cpu==5)

printf("Vetor de numeros pares: \n",Pu[i]);


}

for(i=0;i<5;i++)

if(cpd==5)

printf("Vetor de numeros pares: \n",Pd[i]);

for(i=0;i<5;i++)

if(cpt==5)

printf("Vetor de numeros pares: \n",Pt[i]);

for(i=0;i<5;i++)

if(cpq==5)

printf("Vetor de numeros pares: \n",Pq[i]);

for(i=0;i<5;i++)

if(cpc==5)

printf("Vetor de numeros pares: \n",Pc[i]);

for(i=0;i<5;i++)

if(cps==5)

printf("Vetor de numeros pares: \n",Ps[i]);

}
for(i=0;i<5;i++)

if(ciu==5)

printf("Vetor de numeros impares: \n",Iu[i]);

for(i=0;i<5;i++)

if(cid==5)

printf("Vetor de numeros impares: \n",Id[i]);

for(i=0;i<5;i++)

if(cit==5)

printf("Vetor de numeros impares: \n",It[i]);

for(i=0;i<5;i++)

if(ciq==5)

printf("Vetor de numeros impares: \n",Iq[i]);

for(i=0;i<5;i++)

if(cic==5)

printf("Vetor de numeros impares: \n",Ic[i]);

for(i=0;i<5;i++)

{
if(cis==5)

printf("Vetor de numeros impares: \n",Is[i]);

system("pause");

52. Escrever um algoritmo que gera os 10 primeiros nmeros primos acima de 100
e os armazena em um vetor X(10) escrevendo, no final, o vetor X.

#include<stdio.h>

#include<stdlib.h>

int main()

int num,divisor,i,j,contPrimo=0,X[10];

while (contPrimo<=10)

for(num=100;num<=1000;num++)

for(i=0;i<num;i++)

if((num%i)==0)

divisor=i;

if(divisor==2)

contPrimo++;

num=X[0+contPrimo];
}

for(j=0;j<10;j++)

printf("%i \t",X[j]);

system("pause");

54. Escreva um algoritmo que l uma matriz M(5,5) e calcula as somas:


a) da linha 4 de M
b) da coluna 2 de M
c) da diagonal principal
d) da diagonal secundria
e) de todos os elementos da matriz
Escreva estas somas e a matriz.

#include<stdio.h> //MATRIZ M[linha] [coluna]

#include<stdlib.h>

int main()

int M[9][9],i,j,SL=0,SC=0,SDP=0,SDC=0,S=0;

for(i=0;i<9;i++)

for(j=0;j<9;j++)

{
printf("Digite o valor para M[%i][%i] ",i,j);

scanf("%i",&M[i][j]);

for(i=0;i<9;i++)

for(j=0;j<9;j++)

printf("%i \t",M[i][j]);

printf("\n");

for(j=0;j<9;i++)

SL=SL+M[3][j]; //item a

for(i=0;i<9;i++)

SC=SC+M[i][1]; //item b

for(i=0;i<9;i++)

for(j=0;j<9;j++)

if(i==j)
SDP=SDP+M[i][j]; //item c

for(i=0;i<9;i++)

for(j=0;j<9;j++)

if(j==8-i)

SDC=SDC+M[i][j]; //item d

for(i=0;i<9;i++)

for(j=0;j<9;j++)

S=S+M[i][j]; //item e

system("pause");

56. Escrever um algoritmo que l uma matriz M(10,10) e a escreve. Troque, a


seguir:
a linha 2 com a linha 8.
a coluna 4 com a coluna 10
a diagonal principal com a secundria
a linha 5 com a coluna 10
Escreva a matriz assim modificada.
#include<stdio.h> //MATRIZ M[linha] [coluna]

#include<stdlib.h>

int main()

int M[10][10],i,j,aux,aux1;

for(i=0;i<10;i++)

for(j=0;j<10;j++)

printf("Digite o valor para M[%i][%i] ",i,j);

scanf("%i",&M[i][j]);

for(j=0;j<10;j++)

aux=M[1][j];

M[1][j]=M[7][j];

M[7][j]=aux;

for(i=0;i<10;i++)

aux=M[i][3];

M[i][3]=M[i][9];

M[i][9]=aux;
}

for(i=0;i<10;i++)

for(j=0;j<10;j++)

if(i==j)

aux=M[i][j];

M[i][j]=M[i][9-i];

M[i][9-i]=aux;

for(i=0;i<10;i++)

for(j=0;j<10;j++)

aux1=M[4][j];

M[4][j]=M[i][9];

M[i][9]=aux1;

for(i=0;i<10;i++)

for(j=0;j<10;j++)

printf("%i \t",M[i][j]);
}

printf("\n");

system("pause");

58. Escrever um algoritmo que l uma matriz M(5,5) e cria 2 vetores SL(5), SC(5)
que contenham respectivamente as somas das linhas e das colunas de M. Escrever
a matriz e os vetores criados.

#include<stdio.h>

#include<stdlib.h>

int main()

int M[5][5],i,j,SL[25]={0},SC[25]={0};

for(i=0;i<3;i++)

for(j=0;j<3;j++)

printf("Digite o valor para M[%i][%i] ",i,j);

scanf("%i",&M[i][j]);

}
for(i=0;i<5;i++)

for(j=0;j<5;j++)

printf("%i \t",M[i][j]);

printf("\n"); //imprime a matriz na tela

for(i=0;i<5;i++)

for(j=0;j<5;j++)

SL[i]=SL[i]+M[i][j];

SC[i]=SC[i]+M[j][i];

for(i=0;i<5;i++)

printf("%i \t",SL[i]);

printf("\n\n\n\n\n");

for(i=0;i<5;i++)

{
printf("%i \t",SC[i]);

system("pause");

60. Escrever um algoritmo que l uma matriz A(8,8) sem elementos duplicados e a
escreve. Ler, a seguir, um n no determinado de valores N e verifique para cada N
lido se o valor de N est ou no na matriz A. Se estiver, encerrar a pesquisa
escrevendo o valor e a mensagem: "Foi encontrado na posio:", caso contrrio
escrever o valor e a mensagem: O valor no est na matriz A.

#include<stdio.h>

#include<stdlib.h>

int main()

int M[8][8],num,i,j;

for(i=0;i<8;i++)

for(j=0;j<8;j++)

printf("Digite o valor para M[%i][%i] sem ser duplicado: \n ",i,j);

scanf("%i",&M[i][j]);

}
while(num!=666)

printf("Entre com um numero ou digite 666 para sair: \n");

scanf("%i",&num);

for(i=0;i<8;i++)

for(j=0;j<8;j++)

if(num==M[i][j])

printf("O numero esta na matriz \n");

else

printf("O numero nao esta na matriz \n");

system("pause");

62. Escrever um algoritmo que l uma matriz N(15,5) e a escreve. Verifique, a


seguir, quais os elementos de M que esto repetidos e quantas vezes cada um deles
est repetido. Escrever cada elemento repetido com uma mensagem dizendo a
quantidade de vezes que aparece M.

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

int main()

int N[15][5],i,j,a,b,repet;

for (i=0;i<15;i++)

for(j=0;j<5;j++)

printf("informe o elemento para N[%i][%i]: ",i,j);

scanf("%i", &N[i][j]);

for (i=0;i<15;i++)

for(j=0; j<5; j++)

printf("%i\t", N[i][j]);

printf("\n");

for (i=0;i<15;i++)

for(j=0;j<5;j++)

repet = 0;
for (a=0;a<15;a++)

for(b=0;b<5;b++)

if (N[i][j] == N[a][b])

repet++;

if (repet>1)

printf("o elemento %i foi repetido %i vezes. \n\n", N[i][j], repet);

system("pause");

64. Escrever um algoritmo que l um vetor Y(30) e o escreve. Conte a seguir,


quantos valores iguais a A esto neste vetor e escreva esta informao. Crie a
seguir um vetor X contendo todos os elementos de Y diferentes de A e escreva este
vetor compactado de Y. Utilize subalgoritmo para ler e escrever vetores, bem
como, para contar o nmero de valores A e para criar o vetor X.

#include<stdio.h>

#include<stdlib.h>

void leitura(int *vetor, int t)

int i;

int Y[tam], X[tam];


int X, Y;

for (i=0; i<t; i++)

printf ("Digite um numero para o vetor: \n");

scanf("%i", &vetor[i]);

void escreve(int *vetor, int t)

int i;

printf ("\n Vetor lido:\n");

for (i=0; i<t; i++)

printf ("%i \t", vetor[i]);

int conta(int *vetor, int t, int A)

int cont = 0, i;

for(i=0; i<t; i++)

if (A == vetor[i])

cont++;

}
}

return cont;

void cria_vetor(int *vetor, int t, int A, int *novoVetor, int *novoTam)

int pos, i;

pos = 0;

for (i=0; i<t; i++)

if (vetor[i] != A)

novoVetor[pos]= vetor[i];

pos++;

*novoTam = pos;

int main()

int t=30, tX, Y[tam], X[tam], A, ocorrencias;

leitura (Y, t);

escreve(Y, t);

printf ("Escolha valor para A: ");


scanf ("%i", &A);

ocorrencias = conta(Y, t, A);

printf("O valor %i aparece %i vezes no vetor Y", A, ocorrencias);

cria_vetor(Y, t, A, X, &tX);

escreve (X, tX);

system("pause");

66. Logo aps o surgimento dos computadores, os mesmos foram usados


principalmente para clculos cientficos. Como seu aparecimento se deu em pleno
perodo de guerras, um dos primeiros clculos foi o da trajetria de projteis.
Se um projtil atirado com uma velocidade inicial V(m/s) a um ngulo de
inclinao T(radianos), sua posio no plano vertica1 x, j, no tempo t(segundos)
calculado pelas frmulas:
x = (V cos T)t
j = (V sen T)t - 1/2 gt2
onde 0 < T < /2
g = 9,8 m/s2

Escrever um subalgoritmo que recebe T e Y e lista as coordenadas x, j em


intervalos de 0.1s para um tiro particular, terminando quando o projti1 atingir o
solo.

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

#include<math.h>

#define pi 3.14159265

float (float vel,float angulo)

float x,j,t=0,g=9.8;

while(j>=0)

x=(vel*cos(angulo))*t;

j=((vel*sin(angulo))*t)-(1/2)*g*(t*t);

printf("Posio no eixo x em %f: %f \n",t,x);

printf("Posio no eixo j em %f: %f \n",t,j);

printf("\n\n");

t=t+0.1;

return 0;

68. Escrever um algoritmo que l 2 vetores x e y e chama um subalgoritmo para


calcular o produto de X por Y.

#include<stdio.h>

#include<stdlib.h>

int produto(int a,int b)


{

int c,i;

for(i=0;i<5;i++)

c=a*b;

return c;

int main()

int A[5],B[5],C[5],i;

for(i=0;i<5;i++)

printf("Digite um valor para a matriz A: \n");

scanf("%i",&A[i]);

for(i=0;i<5;i++)

printf("Digite um valor para a matriz B: \n");

scanf("%i",&B[i]);

for(i=0;i<5;i++)
{

C[i]=produto(A[i],B[i]);

for(i=0;i<5;i++)

printf("%i \t",C[i]);

system("pause");

Você também pode gostar