Вы находитесь на странице: 1из 167

1.

Escrever um programa que leia um vetor de 30 elementos inteiros e no final mostre os


valores do vetor que so maiores do que a media dos valores digitados.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{int v[30],media,i;
media=0;
for(i=0;i<8;i++){
scanf("%d",&v[i]);
media=media+v[i];
}
media=media/8;
printf("media:%d\n",media);
for(i=0;i<8;i++){
if(v[i]>media)
{printf("%d\n",v[i]);
} }
system("PAUSE");
return 0;}
2. Escrever um programa que declare um vetor de 20 inteiros, leia um valor para cada posio
e no final mostre quantos elementos possuem valor maior, menor e igual ao primeiro elemento
do vetor.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{int v[20],i;
for(i=0;i<8;i++){
scanf("%d",&v[i]);}
for(i=0;i<8;i++){
if(v[i]>v[1])
{printf("maior%d\n",v[i]);
if(v[i]==v[1])
{printf("igual%d\n",v[i]);
if(v[i]<v[1])
{printf("menor%d\n",v[i]);
} }}}
system("PAUSE");
return 0;}
3. Escrever um programa que, usando um for, exiba o caractere, cdigo ASCII e valor
hexadecimal para todas as letras no intervalo de 'A' a 'Z', uma por linha, no
seguinte formato:
A - 65 - 41
B - 66 - 42
C - 67 - 43
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
char ch, resposta= 'S' ;
do
{
system ("cls");
ch ='\0';
printf("\n Digite um caracter: \n");
scanf("%c",&ch);
printf("\n O caracter digitado foi: %c", ch);
printf("\n O codigo ASCII e': %d\n", ch);
fflush(stdin);
printf ("\n vai continuar e ai: (S\\N) ?" );
resposta= toupper(getche());
}
while (resposta='S');
printf("\n");
system("PAUSE");
return 0;}
4. Faca um programa que receba 10 valores inteiros e que indique: quantos so pares, quantos
so impares, quantos so positivos e quantos so negativos.
#include (stdio.h)
#include (stdlib.h)
main() {{
int n1, n2, n3, n4, n5, n6, n7, n8, n9, n10;
int n_pares=0, n_impares=0, n_pos=0, n_neg=0;
printf("digite o 1.. nmero inteiro");
scanf("%d",&n1);
if (n1 % 2 == 0) n_pares++;
else n_impares++;
if (n1 > 0) n_pos++;
else n_neg++;
printf("digite o 2. nmero inteiro");
scanf("%d",&n2);
if (n2 % 2 == 0) n_pares++;
else n_impares++;
if (n2 > 0) n_pos++;
else n_neg++;
printf("digite o 3. nmero inteiro");
scanf("%d",&n3);
if (n3 % 2 == 0) n_pares++;
else n_impares++;
if (n3 > 0) n_pos++;
else n_neg++;
printf("Resultados\n");
printf(" %d nmeros pares\n",n_pares);
printf(" %d nmeros impares\n",n_impares);
printf(" %d nmeros positivos\n",n_pos);
printf(" %d nmeros negativos\n",n_neg);
}
system("PAUSE");
return 0;}
5. Crie um programa em C que calcule o salrio de um empregado baseado no n.o de horas
que trabalhou, e no seu salrio por hora. Notas:
a) As horas extras (> 40) so pagas em dobro.
b) O numero de horas trabalhadas e o valor por hora devem ser Informados
pelo usurio.
#include <stdio.h>
#include <stdlib.h>
#define extras 160
main(){{
float horas, salario_hora, salario;
printf("indique o n. de horas que trabalhou este mes: ");
scanf("%f",&horas);
printf("indique quanto ganha por hora (em reais): ");
scanf("%f",&salario_hora);
if (horas > 160)
salario = 2 * salario_hora * (horas - 160) + salario_hora * 160;
else
salario = salario_hora * horas;
printf("O seu salrio vai ser: %.2f",salario);}
system("PAUSE");
return 0;}
6. Faca um programa que escreva na tela uma tabela de converso de graus Celsius para
Fahrenheit. A tabela deve apresentar os graus Celsius de 0 a 100 com intervalos de 2 em 2.
7. Faca um programa que, atravs de uma funo, converta um valor de temperatura lida em
Celsius em fahrenheit e mostre o resultado na tela.
#include (stdio.h)
#include (stdlib.h)
int main(int argc, char *argv[])
{
int tc, tf;
printf("digite a temperatura em fahrenheit");
scanf("%i",&tc);
for(i>=-100;&& i<=+100;i++);
tc==((9*i)/5)+32);
if (tf==i);
printf("tf equivale a: ,"tc",em graus celsius");
system("PAUSE");
return 0;
}
8. Faca uma funo que receba uma palavra e exiba cada caractere da palavra em uma linha.
Teste essa funo na funo principal do programa desenvolvido.
#include (stdio.h)
#include (stdlib.h)
#include (string.h)
int contaCaracteres (char palavra, char letra);
int main(int argc, char *argv[])
{ char texto[100], letra;
int total;
scanf("%s", texto);
getchar();
scanf("%c", &letra);
total = contaCaracteres (texto, letra);
printf("A letra %c aparece %d vezes na palavra %s.", letra, total, texto);
return 0;
}
int contaCaracteres (char *palavra, char letra) {
int tamanho, i, total=0;
tamanho = strlen(palavra);
for (i=0;i<tamanho;i++) {
if (palavra[i]==letra)
total++; }
system("PAUSE");
return 0; }
9. Faca uma funcao que receba uma palavra e exiba a palavra invertida. Teste essa funcao na
funcao principal do programa desenvolvido.
#include <stdio.h>
#include <conio.h>
#include <string.h>
void inverter()
{
char str[200];
int i,length;
printf("\nDigite a string(sem espacos): ");
scanf("%s",&str);
printf("\n\n\n");
length=strlen(str);
for (i=length;i>=0;i--)
{
printf("%c",str[i]);
}}
int main(int argc, int * argv[])
{
inverter();
printf("\n\n\nPressione qualquer tecla para finalizar...");
getch();
return(0);
}
10.Faa um programa que vai pedindo nmeros ao utilizador ate que este introduza o numero -
1. O computador deve dizer a media dos nmeros introduzidos (excluindo o -1).
#include <stdio.h>
#include <conio.h>
int main(int argc, int * argv[]){
float input,soma,media;
int counter;
soma=0;
counter=-1;
media=0;
input=0;
do{
counter=counter+1;
soma=soma+input;
printf("Digite o valor: ");
scanf("%f", &input);
} while (input>=0) ;
media = soma / counter;
printf("A media dos valores eh: %f ", media);
printf("\n\n\nPressione qualquer tecla para finalizar...");
getch();
return(0);}
11. Altere o programa anterior, de modo que ele fornea o mnimo, Maximo e media dos
valores lidos.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ int i, valor1, valor2, valor3, valor4, valor5, media;
{printf (valor1, valor2, valor3, valor4, valor5)
media == (valor1+valor2+valor3+valor4+valor5)/5;
if (valor1>media) ;
printf(valor1);
else
if (valor2>media) ;
printf(valor2);
else
if (valor3>media);
printf(valor3);
else
if (valor4>media);
printf(valor4);
else
if(valor5>media);
printf(valor5);
else
system("PAUSE");
return 0;}
12. Criar um programa que contenha a funo void estao (int dia, int ms), que exibe no
vdeo qual a estao do ano da data passada por parmetro. Lembrando que a primavera
comea no dia 23 de setembro, o vero em 21 de dezembro, o outono em 21 de marco e o
inverno em 21 de junho. Estao(25,10); sada: 25/10 e primavera. estao(29,12); sada:
29/12 e vero.
#include <stdio.h>
#include <conio.h>
void estacao(int day, int mes)
{ int season;
if (mes<=3)
{season=2;
if ((mes==3) && (day>=21)) season=3;
}
if ((mes<=6) && (mes>3))
{
season=3;
if ((mes==6) && (day>=21)) season=4;
}
if ((mes<=9) && (mes>6))
{
season=4;
if ((mes==9) && (day>=23)) season=1;
}
if ((mes<=12) && (mes>10))
{
season=1;
if ((mes==12) && (day>=21)) season=2;
}
if (season==1) printf("%d/%d eh primavera.",day,mes);
if (season==2) printf("%d/%d eh verao.",day,mes);
if (season==3) printf("%d/%d eh outono.",day,mes);
if (season==4) printf("%d/%d eh inverno.",day,mes);
}
int main(int argc, int * argv[])
{
int day,month;
do {
printf("\nDigite o Dia,Mes (mes 13 para sair): ");
scanf("%d,%d",&day,&month);
estacao(day,month);
} while ((month<13) && (day<31));
printf("\n\n\nPressione qualquer tecla para finalizar...");
getch();
return(0);}
13. Escrever um programa que leia 2 variveis int (pode ser um vetor ou variveis separadas) e
mostra os valores digitados em ordem crescente (primeiro o menor, depois o maior). A leitura
deve ser feita na funo main() e a exibio em uma funo chamada mostra(). O programa
no pode ter variveis globais.
14. Escrever um programa que leia quatro valores float e mostre o maior e o menor valor
digitado. A leitura deve ser feita em uma funo chamada leitura() e o resultado deve ser
exibido em uma funo chamada exibe(), sendo que no pode ser declarada nenhuma varivel
global.
#include (stdio.h)
#include (stdlib.h)
int main() {
int a,b;
scanf("%d %d", &a, &b);
if (a>b)
printf("%d maior que %d.", a, b);
else if (b>a)
printf("%d menor que %d.", a, b);
else
printf("so valores iguais.");
return 0;}
15.Faca um programa que obtenha do teclado o valor n e imprima na tela os n primeiros
termos de uma seqncia de Fibonacci. Para isso, crie uma funo chamada Fibonacci que
recebe o numero n.
Observao: Uma seqncia e dita de Fibonacci quando os dois primeiros termos forem 0 e 1
e todos os termos consecutivos tenham valor igual a soma dos dois termos anteriores.
Exemplo: 1 1 2 3 5 8 13 21 34 55 . . .
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int anterior=1, atual=1, n, proximo, total=0;
printf("digite ate qual termo da serie fibonacci deseja obter");
scanf("%d",&n);
printf("%d\n", anterior);
printf("%d\n", atual);
while (total<=n) {
proximo = anterior + atual;
anterior = atual;
atual = proximo;
printf("%d\n", proximo);
total++;
}
system("PAUSE");
return 0;}}
16.No Brasil existem as moedas e 1, 5, 10, 25 e 50 centavos, e notas de 1, 2, 5, 10, 20, 50 e
100 Reais (desconsiderando a moeda de 1 Real). Faa um programa que dado um valor em
reais, mostre a menor combinao de notas e moedas existente para esse valor.
EX: R$18,67 = 1 nota de 10 reais, 1 nota de 5 reais, 1 nota de 2 reais, 1 nota de 1 real, 1
moeda de 50 centavos, 1 moeda de 10 centavos, 1 moeda de 5 centavos, 2 moedas de 1
centavo.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{int i, valorPago, valorProduto, troco, quantidade, inteiro;
printf(valorPago, valorProduto);
troco =valorPago valorProduto;
printf("O valor total do troco ", troco);
if (troco \ 50==0);
quantidade =troco \ 50;
troco = troco % 50;
printf ("A quantidade de notas de R$ 50 ", quantidade);
else
if (troco \ 20==0);
printf=troco \ 20;
troco = troco % 20;
printf ("A quantidade de notas de R$ 20 ", quantidade);
else
if (troco \ 10 <> 0);
quantidade = troco \ 10;
troco=troco % 10;
printf("A quantidade de notas de R$ 10 ", quantidade);
else
if (troco \ 5 == 0);
quantidade = troco \ 5;
troco = troco % 5;
printf ("A quantidade de notas de R$ 5 ", quantidade);
else
if (troco \ 2 == 0);
quantidade =troco \ 2;
troco = troco % 2;
printf ("A quantidade de notas de R$ 2 ", quantidade);
else
if (troco \ 1 == 0);
quantidade = troco \ 1
troco = troco % 1
printf ("A quantidade de notas de R$ 1 ", quantidade);
else
system("PAUSE");
return 0;
}
17.Faca um algoritmo que receba trs valores que representaro os lados de um triangulo e
sero fornecidos pelo usurio. Verifique se os valores formam um triangulo e classifique esse
triangulo como: eqiltero trs lados iguais; issceles dois lados iguais; escaleno trs
lados diferentes;
Lembre-se de que, para formar um triangulo: Nenhum dos lados pode ser igual a zero; Um lado
no pode ser maior do que a soma dos outros dois.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int lado1, lado2, lado3;
scanf("%d %d %d", &lado1, &lado2, &lado3);
if ((lado1>=lado2+lado3) || (lado2>=lado1+lado3) || (lado3>=lado1+lado2))
{
printf("Os lados nao sao valores de um triangulo.\n");
return 0;
}
else {
if ((lado1==lado2) || (lado2==lado3))
printf("Os lados formam um triangulo equilatero.");
else
if ((lado1!=lado2) && (lado2!=lado3) && (lado3!=lado1))
printf("Os lados formam um triangulo escaleno.");
else
printf("Os lados formam um triangulo isoceles.");
}
system("PAUSE");
return 0;
}












Coletnea de
Exerccios em
Linguagem C








Autor:
Rogrio Rmulo de Oliveira

2
2































Coletnea de exerccios- Linguagem C
Aluno: Rogrio Oliveira ANO 2006

3
3
NDICE

Exerccios Diversos-----------------------------------------------------------------------------------9
Usando Nomes --------------------------------------------------------------------------------------9
1)Receber um nome e imprimir as 4 primeiras letras do nome. ----------9
2)Receber um nome e imprimir as letras na posio impar----------------9
3)Receber um nome e imprimir as letras na posio impar----------------9
4)Escrever seu nome na tela 10 vezes. Um nome por linha. ------------- 10
5)Ler nome, endereo, telefone e imprimir --------------------------------------- 10
6) Ler nome, sexo e idade. Se sexo for feminino e idade menor que
25. Imprimir o nome da pessoa e a palavra ACEITA. Caso contrario
imprimir NAO ACEITA.---------------------------------------------------------------------- 10
7) Digite um nome , calcule e mostre quantas letras tem. ---------------- 11
8) Receber do teclado um nome e imprimir tantas vezes quantos
forem seus caracteres. --------------------------------------------------------------------- 11
9) Receber do teclado uma mensagem e imprimir quantas letras A, E,
I, O, U tem esta mensagem. Considerar minscula e maiscula. A
funo em portugol que acessa letra por letra de uma palavra
strlem(variavel,x). (x a posio da letra na frase)-------------------------- 11
10)Receber um nome no teclado e imprimir quantas letras "A" tem o
nome. ---------------------------------------------------------------------------------------------- 12
11) Criar um algoritmo que entre com uma palavra e imprima
conforme exemplo a seguir: ------------------------------------------------------------- 13
12) exerccio 6 da lista 3 - Receber um nome do teclado e imprim-lo
de trs pra frente.---------------------------------------------------------------------------- 13
13) Receber do teclado a sigla do estado de uma pessoa e imprimir- 14
14) Informe dois nomes, imprimir o tamanho de cada um e mostr-
los.--------------------------------------------------------------------------------------------------- 14
15)Entrar com um nome e imprimir o nome somente se a primeira
letra do nome for a (maiscula ou minscula). ----------------------------- 14
16)Solicitar no teclado uma frase com no mximo 40 letras. Se o
tamanho for maior que 40, dar uma mensagem de entrada invlida e
solictar novamente, se passar, imprimir a frase na vertical com um
tempo em cada letra. ----------------------------------------------------------------------- 15
17)Escrever um programa que receba um nome -Que conte o nmero
de vogais existentes nele. -O programa dever imprimir o numero
total de caracteres do nome -Quantas vogais - E a respectiva
porcentagem das vogais em relao ao total de caracteres.-------------- 15
18)Receber um nome no teclado e imprimir a seguinte sada - Nome
todo: - Primeiro caracter: - Do primeiro at o terceiro caracter: ------- 16
19)Receber um nome e imprimir as 4 primeiras letras do nome. ------ 16
20) Fazer um programa que tenha a seguinte saida, conforme o
tamanho da palavra escrita. ------------------------------------------------------------- 16
21) Digitar um nome e solicitar que seja mostrado em maisculo na
tela. ------------------------------------------------------------------------------------------------- 17
22)Digitar um nome e solicitar que seja mostrado em maisculo na
tela. ------------------------------------------------------------------------------------------------- 17
23) Escrever um programa que receba um nome. a)Que conte o
nmero de vogais existentes nele. b)O programa dever imprimir o
numero total de caracteres do nome. c)Quantas vogais e a

4
4
respectiva porcentagem das vogais em relao ao total de caracteres.
-------------------------------------------------------------------------------------------------------- 18
24) Solicitar um nome e mostrar o primeiro, o ltimo, o quarto, do
primeiro ao terceiro, do primeiro ao ultimo. Mostrar a posio de cada
letra no vetor. ---------------------------------------------------------------------------------- 18
25) Solicitar dois nomes e escrev-los, mostrar a posio de cada
letra.------------------------------------------------------------------------------------------------ 19
26) Solicitar um nome e mostrar o primeiro, o ltimo, o quarto, do
primeiro ao terceiro, do primeiro ao ultimo caracter digitado e suas
posies. Mostrar quantas letras tem o nome e escrev-lo de trs
pr frente.---------------------------------------------------------------------------------------- 20
27) Solicitar um nome e mostrar o primeiro, o ltimo, o quarto, do
primeiro ao terceiro do primeiro ao ultimo caracter digitado e suas
posies. Mostrar quantas letras tem o nome e escrev-lo de trs pr
frente. Mostrar o nmero de vogais e constantes. ---------------------------- 21
Usando Nmeros, calculando mdias, etc...----------------------------------------- 23
01)Fazer um programa que imprima a mdia aritmtica dos nmeros
8,9 e 7. A media dos numeros 4, 5 e 6. A soma das duas mdias. A
media das medias. --------------------------------------------------------------------------- 23
02)Receber um nome no teclado e imprimi-lo dez vezes. ----------------- 23
03) Ler um nmero inteiro e imprimir seu sucessor e seu antecessor.
-------------------------------------------------------------------------------------------------------- 23
04) Receber um valor qualquer do teclado e imprimir esse valor com
reajuste de 10%.. ---------------------------------------------------------------------------- 24
05) Informar tres numeros inteiros e imprimir a mdia -------------------- 24
06)Informe o tempo gasto numa viagem (em horas), a velocidade
mdia e calcule o consumo.-------------------------------------------------------------- 24
07) Ler um nmero inteiro e imprimir seu quadrado.------------------------ 25
08) Informar um saldo e imprimir o saldo com reajuste de 1%--------- 25
09) Calcule e imprima o valor em reais de cada kw o valor em reais a
ser pago o novo valor a ser pago por essa residencia com um
desconto de 10%. Dado: 100 kilowatts custa 1/7 do salario minimo.
quantidade de kw gasto por residencia --------------------------------------------- 25
10) Informar um preo de um produto e calcular novo preo com
desconto de 9% ------------------------------------------------------------------------------- 25
11) Clculo de um salario lquido de um professor . Sero fornecidos
valor da hora aula, numero de aulas dadas e o % de desconto do
INSS. ----------------------------------------------------------------------------------------------- 26
12) Ler uma temperatura em graus Celsius e transform-la em graus
Fahrenheit.--------------------------------------------------------------------------------------- 26
13)Calcular o Consumo de um veculo conforme os dados informado
no teclado: Tempo em horas, velocidade mdia e distncia.------------- 26
14) Ler um numero e se for maior que 20 imprimir a metade desse
numero. ------------------------------------------------------------------------------------------- 27
15) Ler 2 numeros inteiros e soma-los. Se a soma for maior que 10,
mostrar o resultado da soma.----------------------------------------------------------- 27
16) Ler 2 numeros inteiros e soma-los. Se a soma for maior que 10,
mostrar o resultado da soma------------------------------------------------------------ 27
17) Ler 1 nmero. Se positivo, imprimir raiz quadrada senao o
quadrado. ---------------------------------------------------------------------------------------- 28

5
5
18) Solicitar salario, perstaao. Se prestao for maior que 20% do
salario, imprimir : Emprstimo no pode ser concedido. Seno
imprimir Emprstimo pode ser concedido. ---------------------------------------- 28
19)Ler um numero e imprimir: maior que 20, igual a 20 ou menor que
20.--------------------------------------------------------------------------------------------------- 28
20) Ler um numero e imprimir: maior que 20, igual a 20 ou menor
que 20. -------------------------------------------------------------------------------------------- 29
21) Ler um ano de nascimento e ano atual. Imprimir a idade da
pessoa. -------------------------------------------------------------------------------------------- 29
22)Criar um algoritmo que leia os limites inferior e superior de um
intervalo e imprimir todos os nmeros pares no intervalo aberto e seu
somatrio. Suponha que os dados digitados so para um intervalo
crescente. ---------------------------------------------------------------------------------------- 29
23)Apresentar os quadrados dos nmeros inteiros de 15 a 200 -------- 30
24)Apresentar o total da soma obtida dos cem primeiros nmeros
inteiros--------------------------------------------------------------------------------------------- 30
25)Apresentar todos os nmeros divisveis por 4 que sejam menores
que 200. ------------------------------------------------------------------------------------------ 31
26)Elaborar um programa que efetue a leitura sucessiva de valores
numricos e apresente no final o total do somatrio, a mdia e o total
de valores lidos. O programa deve fazer as leituras dos valores
enquanto o usurio estiver fornecendo valores positivos. Ou seja, o
programa deve parar quando o usurio fornecer um valor negativo. 31
27) Elaborar um programa que efetue a leitura de valores positivos
inteiros at que um valor negativo seja informado. Ao final devem ser
apresentados o maior e menor valores informados pelo usurio. ------ 32
28) Receber um nmero do teclado e informar se ele divisvel por
10, por 5, por 2 ou se no divisvel por nenhum destes. ---------------- 32
29) Um comerciante comprou um produto e quer vend-lo com lucro
de 45% se o valor da compra for menor que 20,00; caso contrrio, o
lucro ser de 30%. Entrar com o valor do produto e imprimir o valor
da venda.----------------------------------------------------------------------------------------- 33
30) Ler a idade de uma pessoa e informar a sua classe eleitoral.------ 33
31) Receber do teclado, vrios nmeros e verificar se eles so ou no
quadrados perfeitos. O programa termina quando o usurio digitar
um nmero menor ou igual a zero.--------------------------------------------------- 33
32) Receber um nmero e verificar se ele triangular.--------------------- 34
33)Ler 3 nmeros e imprimir se eles podem ou no ser lados de um
tringulo. ----------------------------------------------------------------------------------------- 34
34) Ler 2 valores e somar os dois. Caso a soma seja maior que 10,
mostrar a soma.------------------------------------------------------------------------------- 35
35) Entrar com um nmero e imprimir a raiz quadrada do nmero.
Caso ele seja positivo. E o quadrado dele caso seja negativo.----------- 35
36) Ler um nmero inteiro e verificar se est compreendido entre 20 e
80. Se tiver, imprimir parabns, seno imprimir chimpanz.------- 35
37)Ler um nmero do teclado e imprimir todos os nmeros de 1 at o
nmero lido. Imprimir o produto dos nmeros.--------------------------------- 36
38) Ler um nmero e imprimir igual a 20, menor que 20, maior que
20.--------------------------------------------------------------------------------------------------- 36

6
6
39) Informe o tipo de carro (A, B e C). Informe o percurso rodado em
km e calcule o consumo estimado, conforme o tipo, sendo (A=8, B=9
e C=12) km/litro ------------------------------------------------------------------------------ 36
40)Escrever um programa que leia, valores inteiros, at ser lido o
valor-99. Quando isso acontecer o programa dever escrever a soma
e a mdia dos valores lidos. ------------------------------------------------------------- 37
41)Escrever um programa que receba vrios nmeros inteiros no
teclado. E no final imprimir a mdia dos nmeros multiplos de 3. Para
sair digitar 0(zero). -------------------------------------------------------------------------- 37
42) Receber dois numeros e imprimi-los em ordem crescente. --------- 38
43) Escrever um programa que receba vrios nmeros inteiros no
teclado e no final imprimir a mdia dos nmeros multiplos de 3. Para
sair digitar 0(zero). -------------------------------------------------------------------------- 38
44) 3)Ler um nmero do teclado e imprimir todos os nmeros de 1
at o nmero lido. Imprimir o produto dos nmeros.------------------------ 39
45) Escrever um programa, que leia valores inteiros at ser lido o
valor-99. Quando isso acontecer o programa dever escrever a soma
e a mdia dos valores lidos. ------------------------------------------------------------- 39
46) Preencher um vetor com nmeros inteiros(8unidades); solicitar
um nmero do teclado. Pesquisar se esse nmero existe no vetor. Se
existir,imprimir em qual posio do vetor e qual a ordem foi digitado.
Se no existir, imprimir MSG que no existe. ----------------------------------- 40
47) Preencher um vetor com nmeros inteiros(8unidades); solicitar
um nmero do teclado. Pesquisar se esse nmero existe no vetor. Se
existir,imprimir em qual posio do vetor. Se no existir,imprimir MSG
que no existe.--------------------------------------------------------------------------------- 40
WHILE E FOR--------------------------------------------------------------------------------------- 42
01) Solicitar a idade de vrias pessoas e imprimir: Total de pessoas
com menos de 21 anos. Total de pessoas com mais de 50 anos. O
programa termina quando idade for =-99.---------------------------------------- 42
02) Solicitar um nmero entre 1 e 4. Se a pessoas digitar um nmero
diferente, mostrar a mensagem "entrada invlida" e solicitar o
nmero novamente. Se digitar correto mostrar o nmero digitado. -- 42
03) Solicitar um nmero entre 1 e 4. Se a pessoa digitar um nmero
diferente, mostrar a mensagem "entrada invlida" e solicitar o
nmero novamente. Se digitar correto mostrar o nmero digitado. -- 42
04)Fazer um programa que gere a sada. ----------------------------------------- 43
05) Solicitar um nome e escrev-lo.------------------------------------------------- 43
06) Solicitar um nome e escrev-lo de trs pra frente. --------------------- 43
07) Solicitar um nome e escrev-lo de trs pra frente. --------------------- 44
08) Fazer um programa que receba um valor n no teclado e determine
o maior. A condio de trmino do programa quando o usurio
digitar zero. ------------------------------------------------------------------------------------- 44
09)Apresentar o total da soma obtida dos cem primeiros nmeros
inteiros.-------------------------------------------------------------------------------------------- 44
10)Receber um numero e verificar se est entre 100 e 200. Se
estiver na faixa,imprimir: "Voce digitou um numero entre 100 e 200",
Seno estiver na faixa,imprimir:"Voce digitou um numero fora da
faixa entre100 e 200".---------------------------------------------------------------------- 45
VETORES--------------------------------------------------------------------------------------------- 46

7
7
01)Preencher um vetor com nmeros inteiros(8unidades); solicitar um
nmero do teclado. Pesquisar se esse nmero existe no vetor. Se
existir,imprimir em qual posio do vetor. Se no existir,imprimir MSG
que no existe.--------------------------------------------------------------------------------- 46
2)Preencher um vetor com os numeros pares do nmero 2 a 20. ----- 46
3)Preencher um vetor com os numeros pares do nmero 2 a 20.
Preencher um vetor com os numeros de 10 a 19. Somar os vetores
acima.---------------------------------------------------------------------------------------------- 47
4)Preencher um vetor de 8 elementos inteiros. Mostrar o vetor e
informar quantos nmeros so maior que 30, Somar estes nmeros.
Somar todos os nmeros.----------------------------------------------------------------- 47
5)Preencher um vetor com 3 nomes com 20 letras no mximo cada.
Imprimir os Nomes.-------------------------------------------------------------------------- 48
6) Neste exrcicio temos dois vetores com 5 posies (0 a 4). Em
cada vetor entraremos com cinco nmeros. Mostrar os nmeros e
depois somar nmeros que perteam a mesma posio ou seja:
[0]+[0],[1]+[1],...--------------------------------------------------------------------------- 48
7)Preencher um vetor de 8 elementos inteiros. Mostrar o vetor e
informar quantos nmeros so maior que 30.----------------------------------- 49
8) Preencher um vetor de 8 elementos inteiros. Mostrar o vetor na
horizontal com\t. Calcular a mdia do vetor. Mostrar quantos numeros
so mltiplos de 5. Quantos nmeros so maiores que 10 e menores
que 30. Qual o maior nmero do vetor.-------------------------------------------- 49
9) Preencher um vetor com 3 nomes e mostrar quantas letras A e E
tem nos 3 nome.------------------------------------------------------------------------------ 50
10) Informar 3 nomes. Mostrar quantas letras "A" e "E", possuem.- 50
11)Armazenar em Vetores, Nomes e Notas PR1 e PR2 de 6 alunos.
Calcular a mdia de cada aluno e imprimir aprovado se a mida for
maior que 5 e reprovado se mdia for menor ou igual a 5. OBS.: 2
vetores para as notas tipo float. 1 vetor para os nomes. 1 vetor
para a mdia. 1 vetor para situao. ------------------------------------------------ 51
12)Armazenar em Vetores, Nomes e Notas PR1 e PR2 de 6 alunos.
Calcular a mdia de cada aluno e imprimir aprovado se a mida for
maior que 5 e reprovado se mdia for menor ou igual a 5. OBS.: 2
vetores para as notas tipo float. 1 vetor para os nomes. 1 vetor
para a mdia. 1 vetor para situao.---------------------------------------------- 52
13)Preencher um vetor com 6 numeros e mostra-los na tela.----------- 53
14) Preencher um vetor com 5 numeros e a medida que for digitado o
numero, calcular o cubo e mostrar em outro vetor. Mostrar os dois
vetores.-------------------------------------------------------------------------------------------- 53
15) Preencher um vetor com 5 numeros e guardar o cubo dos
numeros em outro vetor. Mostrar os dois vetores.--------------------------- 53
16)Preencher um vetor com os numeros 10 a 20, e depois mostrar os
elementos pares do vetor de trs pr frente. E tambm mostrar os
nmeros mpares. ---------------------------------------------------------------------------- 54
17)Preencher um vetor com os numeros 10 a 20, e depois mostrar os
elementos pares do vetor de trs pr frente.----------------------------------- 54
18)Preencher um vetor com os numeros 10 a 20, e depois mostrar os
elementos mpares do vetor.----------------------------------------------------------- 55

8
8
19)Preencher um vetor com 5 numeros inteiros, solicitados no teclado
e mostrar outro vetor com o cubo dos nmeros do primeiro vetor.--- 55
20) Preencher um vetor com os numeros 10 a 20, e depois mostrar o
vetor.----------------------------------------------------------------------------------------------- 55
21) Preencher um vetor com os numeros 10 a 20, e depois mostrar o
vetor.----------------------------------------------------------------------------------------------- 56
22)Preencher um vetor com 5 numeros inteiros, solicitados no teclado
e mostrar outro vetor com o cubo dos nmeros do primeiro vetor.--- 56
23) Preencher um vetor com os numeros 10 a 20, e depois mostrar os
elementos mpares do vetor.----------------------------------------------------------- 56
24) Preencher um vetor com os numeros 10 a 20, e depois mostrar os
elementos pares do vetor de trs pr frente.----------------------------------- 57
25) Preencher um vetor com os numeros 10 a 20, e depois mostrar os
elementos pares do vetor de trs pr frente. E tambm mostrar os
nmeros mpares. ---------------------------------------------------------------------------- 57
FUNES -------------------------------------------------------------------------------------------- 59
01)Funo preencher Vetor, imprimir o Vetor, imprimir o quadrado,
imprimir o primeiro e o ultimo numeros-------------------------------------------- 59
02) Criar uma funo que retorna o seguinte: A funo recebe 3
valores float e retornar o quadrado do 1 + a soma dos outros dois.
Vai retornar o tipo inteiro. ---------------------------------------------------------------- 60
03)Criar uma funo que retorna o seguinte: A funo recebe 3
valores float (n1,N2,n3)e retornar o (x*x)+y+z ou seja : O quadrado
do 1 + a soma dos outros dois. Vai retornar o tipo inteiro.-------------- 60
04) Criar uma funo que receba um caractere como parmetro e
retorne 1 (um) caso seja uma vogal e zero caso no seja.---------------- 61
05) Criar um programa que receba um nome como parmetro e
retorne quais letras so vogais e quais so as constantes. Usar uma
funo que verifica se uma vogal.-------------------------------------------------- 61
06) Criar uma funo que retorna o seguinte: A funo recebe 3
valores float e retornar o quadrado do 1 + a soma dos outros dois.
Vai retornar o tipo inteiro. ---------------------------------------------------------------- 62
07) Criar um programa que receba dois nomes e retorne quais letras
so vogais e quais so as constantes. Usar uma funo que verifica se
uma vogal.------------------------------------------------------------------------------------ 62
MATRIZ----------------------------------------------------------------------------------------------- 64
01)Ler um vetor vet de 10 elementos e obter um vetor quadrado
cujos componentes deste vetor so o quadrado dos respectivos
componentes de vet.------------------------------------------------------------------------ 64
02) Criar um algoritmo que leia os elementos de uma matriz inteira de
4 x 4 e imprimir os elementos da diagonal principal. ------------------------ 64
3)Criar um algoritmo que leia os elementos de uma matriz inteira de 3
x 3 e imprimir todos os elementos, exceto os elementos da diagonal
principal.------------------------------------------------------------------------------------------ 65
10)Criar um algoritmo que leia os elementos de uma matriz inteira de
3 x 3 e imprimir outra matriz multiplicando cada elemento da primeira
matriz por 2. ------------------------------------------------------------------------------------ 66


9
9
Exerccios Diversos

Usando Nomes
1)Receber um nome e imprimir as 4 primeiras letras do nome.
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
main()
{
char nome[30];
int B;
printf ("informe um nome:");
gets(nome);
for(B=0;B<=3;B++)
printf("\%c",nome[B]);
printf ("\n\n");
system("PAUSE");
return 0;
}
2)Receber um nome e imprimir as letras na posio impar
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
main()
{
int pp=1,tam,x;
char APELIDO[100];
printf ("Informe um apelido:");
gets(APELIDO);
tam=strlen(APELIDO);
printf("\nAs letras na posicao impar sao: ",x);
while(pp<=tam-1)
{
printf(" %c ",APELIDO[pp]);
pp=pp+2;
}
printf ("\n");
printf("\n\tNome digitado: %s\t",APELIDO);
printf ("\n\n");
system("PAUSE");
return 0;
}
3)Receber um nome e imprimir as letras na posio impar
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
main()
{

10
10
int pp,tam,x;
char APELIDO[100];
printf ("[%c]Informe um apelido: ");
gets(APELIDO);
tam=strlen(APELIDO);
printf("\nAs letras na posicao impar sao:");
for(pp=1;
pp<=tam-1;pp=pp+2)
printf(" %c ",APELIDO[pp]);
printf("\n\nNome digitado: %s\t",APELIDO);
printf ("\n\n");
system("PAUSE");
return 0;
}
4)Escrever seu nome na tela 10 vezes. Um nome por linha.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int x;
for (x=1;x <=10; x++)
printf("\nCurso de Redes ");
printf("\n");
system("pause");
return 0;
}
5)Ler nome, endereo, telefone e imprimir
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main()
{
char nome[30], endereco[30], telefone[15];
printf("Informe seu nome: ");
gets(nome);
printf("Informe seu endereco: ");
gets(endereco);
printf("Informe seu telefone: ");
gets(telefone);
printf("\n\nNome: %s\n\n",nome);
printf("Endereco: %s\n\n",endereco);
printf("Telefone: %s\n\n",telefone);
system("PAUSE");
return 0;
}
6) Ler nome, sexo e idade. Se sexo for feminino e idade menor que 25. Imprimir o nome da
pessoa
e a palavra ACEITA. Caso contrario imprimir NAO ACEITA.
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
main()
{
char nome[30], sexo;
int idade;
printf("Informe seu nome: ");

11
11
gets(nome);
printf("Informe seu sexo: ");
scanf("%c",&sexo);
printf("Informe sua idade: ");
scanf("%d",&idade);
if (sexo == 'f' || sexo == 'F' && idade < 25)
printf("\n%s. ACEITA.\n\n", nome);
else
printf("\nNAO ACEITA.\n\n");
system("PAUSE");
return 0;
}
7) Digite um nome , calcule e mostre quantas letras tem.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int x,tam;
char nome[30];
for (x=1; x <= 4; x++)
{
printf("Digite um nome: ");
gets(nome);
// na variavel tam ficar guardado quantas letras tem o nome
tam = strlen(nome);
printf("\nEsse nome tem %d\ letras.\n\n",tam);
}
printf("\n\n");
system("pause");
return 0;
}
8) Receber do teclado um nome e imprimir tantas vezes quantos forem seus caracteres.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int x,tam;
char nome[30];
printf("Digite um nome: ");
gets(nome);
tam = strlen(nome);
for (x=1; x <= tam; x++)
printf("\n%s",nome);
printf("\n\n");
system("pause");
return 0;
}
9) Receber do teclado uma mensagem e imprimir quantas letras A, E, I, O, U tem esta
mensagem.
Considerar minscula e maiscula. A funo em portugol que acessa letra por letra de uma
palavra
strlem(variavel,x). (x a posio da letra na frase)
Exemplo:
curso = "curso de redes"
Imprimir strelem(curso,3) ==> ir imprimir a letra s, pois a posio da

12
12
primeira letra da palavra curso 0. a segunda 1, a terceira 2 e assim
sucessivamente.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int x,tam;
int ca,ce,ci,co,cu;
char nome[30];
// inicializei todas as variaveis com zero porque sao contadores
ca = ce = ci = co = cu = 0;
printf("Digite uma frase: ");
gets(nome);
tam = strlen(nome);
for (x=1; x <= tam-1; x++)
{
if (nome[x] == 'a' || nome[x] == 'A')
ca++;
else
if (nome[x] == 'e' || nome[x] == 'E')
ce++;
else
if (nome[x] == 'i' || nome[x] == 'I')
ci++;
else
if (nome[x] == 'o' || nome[x] == 'O')
co++;
else
if (nome[x] == 'u' || nome[x] == 'U')
cu++;
}
printf("\n\nA frase tem:\n");
printf("\n%d letra a",ca);
printf("\n%d letra e",ce);
printf("\n%d letra i",ci);
printf("\n%d letra o",co);
printf("\n%d letra u",cu);
printf("\n\n");
system("pause");
return 0;
}
10)Receber um nome no teclado e imprimir quantas letras "A" tem o nome.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
char nome[30];
int x,t, ca=0;
printf("\n\t INFORME UM NOME : ");
gets(nome);
t=strlen(nome);
for (x=1; x <= t-1; x++)
{
if (nome[x] == 'a' || nome[x] == 'A')
ca++;
}

13
13
printf("\n O nome %s ",(nome));
printf("tem %d letra a.",ca);
printf("\n\n");
system("pause");
return(0);
}
11) Criar um algoritmo que entre com uma palavra e imprima conforme exemplo a seguir:
Exemplo: SONHO
Como a palavra SONHO tem 5 letras a impresso ficaria assim:
SONHO
SONHO SONHO
SONHO SONHO SONHO
SONHO SONHO SONHO SONHO
SONHO SONHO SONHO SONHO SONHO
Repare que foram impressos 5 vezes na horizontal e 5 na vertical.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int x,y,tam;
char nome[30];
printf("Digite uma palavra: ");
gets(nome);
tam = strlen(nome);
for (x=1; x <= tam; x++)
{
// o limite superior da repetio o valor de x do primeiro for
// y <= x
for (y=1;y<=x;y++)
printf("%s\t",nome);
printf("\n");
}
system("pause");
return 0;
}

12) exerccio 6 da lista 3 - Receber um nome do teclado e imprim-lo de trs pra frente.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int x,y,tam;
char nome[30];
printf("Digite uma palavra: ");
gets(nome);
tam = strlen(nome);
printf("\n A palavra de tras pra frente e: ");
for (x=tam-1; x >= 0; x--)
printf("%c",nome[x]);
printf("\n\n");
system("pause");
return 0;
}

14
14
13) Receber do teclado a sigla do estado de uma pessoa e imprimir
uma das seguintes mensagens:
Carioca
Paulista
Mineiro
Outros estados
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
// neste programa tem que usar o arquivo de include string.h por causa da funo
// strcmp, cuja funo comparar duas strings.
main()
{
char estado[3];
printf("Informe a sigla de um estado do Brasil: ");
// gets(sigla);
scanf("%s", estado);
if(!strcmp(estado,"MG") || !strcmp(estado,"mg"))
printf("Mineiro\n");
else
if(!strcmp(estado,"RJ") || !strcmp(estado,"rj"))
printf("Carioca\n");
else
if(!strcmp(estado,"SP") || !strcmp(estado,"sp"))
printf("Paulista\n");
else
printf("Outros estados\n");
printf("\n");
system("pause");
return 0;
}
14) Informe dois nomes, imprimir o tamanho de cada um e mostr-los.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
char STR1[30],STR2[30];
printf("INFORME UM NOME: ");
gets(STR1);//gets=>l uma string no teclado
printf("\nINFORME UM OUTRO NOME: ");
gets(STR2);//gets=> l uma string no teclado
printf("\nO TAMANHO DO PRIMEIRO NOME E:%d",strlen(STR1)); //strlen=>retorna o tamanho
da string
printf("\nOS NOMES DIGITADOS FORAM:%s",strcat(STR1,STR2));//strcat=>anexa a string2 no
final da string1
printf("\nO CONTEUDO DA VARIAVEL str1 AGORA E %s",strcpy(STR1,STR2));//strcpy=>copia a
string0
para string1
printf("\n");
system("pause");
return(0);
}
15)Entrar com um nome e imprimir o nome somente se a primeira letra do nome for a
(maiscula ou minscula).
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
main()
{

15
15
char NOME[30];
printf("\nINFORME UM NOME: ");
gets(NOME);
if(NOME[0]=='A'||NOME[0]=='a')
printf("\n%s",NOME);
printf("\n\n");
system("pause");
return(0);
}
16)Solicitar no teclado uma frase com no mximo 40 letras. Se o tamanho for maior que 40,
dar
uma mensagem de entrada invlida e solictar novamente, se passar, imprimir a frase na
vertical
com um tempo em cada letra.
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
main()
{
char FRASE[40];int x,tam;
printf("\nDIGITE UMA FRASE: ");
gets(FRASE);
tam=strlen(FRASE);
while(tam>40)
{
printf("\nTAMANHO INVALIDO.MAXIMO 40 LETRAS");
printf("\nDIGITE NOVAMENTE");
gets(FRASE);tam=strlen(FRASE);
}
printf("\n\n");
for(x=0;x<=tam;x++)
printf("\n%c",FRASE[x]);
printf("\n\n");
system("pause");
return(0);
}
17)Escrever um programa que receba um nome -Que conte o nmero de vogais existentes
nele. -O
programa dever imprimir o numero total de caracteres do nome -Quantas vogais - E a
respectiva
porcentagem das vogais em relao ao total de caracteres.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char nome[20],M;
int x,t,soma=0;
float percent, t2=0;
printf("Digite um nome: ");
gets(nome);
t=strlen(nome);
for(x=0;x<=t;x++)
if(nome[x]=='a' || nome[x]=='A' || nome[x]=='e' || nome[x]=='E' ||
nome[x]=='i' || nome[x]=='I' || nome[x]=='o' || nome[x]=='O' ||
nome[x]=='u' || nome[x]=='U')
soma++;
printf("\n O nome tem %d caracteres: ",t);
printf("\n O nome tem %d vogais: ",soma);
//Este for vai calcular o percentual de vogais no nome.
for(x=0;x<=t2;x++)
{
t2=strlen(nome);
percent=soma*100/t2;

16
16
}
printf("\n %f porcento do nome %s sao vogais: ",percent, nome);
printf("\n\n");
system("pause");
return(0);
}

18)Receber um nome no teclado e imprimir a seguinte sada - Nome todo: - Primeiro caracter:
-
Do primeiro at o terceiro caracter:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<string.h>
main()
{
char nome[30];
int t;
printf("\n\tDigite um nome: ");
gets(nome);
t=strlen(nome);
if(nome[0]==' ')
t=t+1;
t=t+2;
t=t+3;
printf("\n\t\tNome completo: %s\n",(nome));
printf("\n\tO primeiro caracter e: %c",nome[0]);
printf("\n\tO segundo caracter e: %c",nome[1]);
printf("\n\tO terceiro caracter e: %c",nome[2]);
printf("\n\n");
system("pause");
return (0);
}
19)Receber um nome e imprimir as 4 primeiras letras do nome.
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
main()
{
char nome[30];
int B;
printf ("informe um nome:");
gets(nome);
for(B=0;B<=3;B++)
printf("\%c",nome[B]);
printf ("\n\n");
system("PAUSE");
return (0);
}
20) Fazer um programa que tenha a seguinte saida, conforme o tamanho da palavra escrita.
Saida na tela.
//xxx
//xxx xxx
//xxx xxx xxx
#include<stdio.h>
#include<stdlib.h>

17
17
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
int x,y,tam;
char palavra[30];
printf("\nDigite uma palavra: ");
gets(palavra);
tam = strlen(palavra);
for(x=1; x<=tam; x++)
{
for(y=1;y<=x;y++)
printf("%s\t",palavra);
printf("\n");
}
system("pause");
return(0);
}
21) Digitar um nome e solicitar que seja mostrado em maisculo na tela.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
main()
{
int x,tam;
float M;
char nome[30];
printf("\nDigite um nome: ");
gets(nome);
tam = strlen(nome);
for(x=0; x<=tam-1; x++)
{
printf("%c\a",toupper(nome[x]));
for(M=1; M<=10000000; M++);
}
printf("\n");
system("pause");
return(0);
}
22)Digitar um nome e solicitar que seja mostrado em maisculo na tela.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
main()
{
int x,tam;
float M;
char nome[30];
printf("\nDigite um nome: ");
gets(nome);
tam = strlen(nome);
for(x=0; x<=tam-1; x++)
{
printf("%c\a",toupper(nome[x]));

18
18
for(M=1; M<=10000000; M++);

}
printf("\n");
system("pause");
return(0);
}





23) Escrever um programa que receba um nome. a)Que conte o nmero de vogais existentes
nele.
b)O programa dever imprimir o numero total de caracteres do nome. c)Quantas vogais e a
respectiva porcentagem das vogais em relao ao total de caracteres.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char nome[30],M;
int x,t,soma=0;
float percent, t2=0;
printf("Digite um nome: ");
gets(nome);
t=strlen(nome);
for(x=0;x<=t;x++)
if(nome[x]=='a' || nome[x]=='A' || nome[x]=='e' || nome[x]=='E' ||
nome[x]=='i' || nome[x]=='I' || nome[x]=='o' || nome[x]=='O' ||
nome[x]=='u' || nome[x]=='U')
soma++;
printf("\n O nome tem %d caracteres: ",t);
printf("\n O nome tem %d vogais: ",soma);
//Este for vai calcular o percentual de vogais no nome.
for(x=0;x<=t2;x++)
{
t2=strlen(nome);
percent=soma*100/t2;
}
printf("\n %3.2f porcento do nome %s sao vogais: ",percent, nome);
printf("\n\n");
system("pause");
return(0);
}
24) Solicitar um nome e mostrar o primeiro, o ltimo, o quarto, do primeiro ao terceiro, do
primeiro ao ultimo. Mostrar a posio de cada letra no vetor.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char nome[30];
int x,y=0,tam;
printf("\n\n DIGITE UM NOME: ");
gets(nome);
tam=strlen(nome);
printf("\n\t\tO nome digitado eh: %s ",nome);
printf("\n\nNa posicao [%d] o primeiro caracter digitado eh: %c ",y, nome[0]);

19
19
printf("\n\nNa posicao [%d] o ultimo caracter digitado eh: %c ",(y=tam-1);
nome[tam-1]);
printf("\n\nNa posicao [%d] esta o quarto caracter digitado eh: %c ",y=3, nome[3]);
printf("\n\n Na posicao do primeiro ao terceiro caracter : ");
printf(" ");
for(x=0;x<=2;x++)
{
printf("\n[%d] %c ",x=x+0,nome[x]);
}
printf("\n");
printf("\nNa posicao do primeiro ao ultimo caracter : ");
for(x=0;x<=tam-1;x++)
printf("\n[%d] %c ",x=x+0,nome[x]);
printf("\n\n");
system("pause");
return(0);
}
25) Solicitar dois nomes e escrev-los, mostrar a posio de cada letra.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char nome[30], nome2[30]; int x,t,t2;
printf("\n\n DIGITE UM NOME: ");
gets(nome);
t=strlen(nome);
printf("\n\n DIGITE UM NOME: ");
gets(nome2);
t2=strlen(nome2);
printf("\n\n");
//Este for vai mostrar a posio de cada letra do primeiro nome.
for(x=0;x<=t-1;x++)
{
printf("\t[%d]",x=x+0);
}
printf("\n\n");
//Este for vai mostrar cada letra abaixo da sua posio no primeiro nome.
for(x=0;x<=t-1;x++)
{
printf("\t %c",nome[x]);
}
printf("\n\n");
//Este for vai mostrar a posio de cada letra do segundo nome.
for(x=0;x<=t2-1;x++)
{
printf("\t[%d]",x=x+0);
}
printf("\n\n");
//Este for vai mostrar cada letra abaixo da sua posio no segundo nome.
for(x=0;x<=t2-1;x++)
{
printf("\t %c",nome2[x]);
}
printf("\n\n");
system("pause");
return(0);
}


20
20
26) Solicitar um nome e mostrar o primeiro, o ltimo, o quarto, do primeiro ao terceiro, do
primeiro ao ultimo caracter digitado e suas posies. Mostrar quantas letras tem o nome e
escrev-lo de trs pr frente.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char nome[30];
int x,y=0,tam;
printf("\n\n DIGITE UM NOME: ");
gets(nome);
tam=strlen(nome);
printf("\n\t\tO nome digitado eh: %s ",nome);
printf("\n\nNa posicao [%d] tem o primeiro caracter digitado que eh: %c ",y, nome[0]);
printf("\n\nNa posicao [%d] tem o ultimo caracter digitado que eh: %c ",(y=tam-1),
nome[tam-1]);
printf("\n\nNa posicao [%d] tem o quarto caracter digitado que eh: %c ",y=3, nome[3]);
printf("\n\nNa posicao do primeiro ao terceiro caracter tem : ");
printf("\n\n");
for(x=0;x<=2;x++)
{
printf("\t[%d] ",x=x+0);
}
printf("\n\n");
for(x=0;x<=2;x++)
{
printf("\t %c ",nome[x]);
}
printf("\nNa posicao do primeiro ao ultimo caracter tem o nome completo: ");
printf("\n\n");
for(x=0;x<=tam-1;x++)
{
printf("\t[%d]",x=x+0);
}
printf("\n\n");
for(x=0;x<=tam-1;x++)
{
printf("\t %c",nome[x]);
}
printf("\n\n");
printf("\nO nome %s tem %d letras: ",nome,tam);
printf("\n\n");
printf("O nome %s escrito de tras pra frente eh: ",nome);
printf("\n\n\t");
for(x=tam-1;x>=0;x--)
printf("%c",nome[x]);
printf("\n\n");
system("pause");
return(0);
}









21
21
27) Solicitar um nome e mostrar o primeiro, o ltimo, o quarto, do primeiro ao terceiro do
primeiro ao ultimo caracter digitado e suas posies. Mostrar quantas letras tem o nome e
escrev-lo de trs pr frente. Mostrar o nmero de vogais e consoantes.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int verificavogal (char M)
{
if(M=='a' || M=='A' || M=='e' || M=='E' || M=='i' || M=='I' || M=='o' || M=='O' || M=='u' ||
M=='U')
return(1);
else
return(0);
}
main()
{
char nome[30];
int x,y=0,tam, soma=0;
printf("\n\n DIGITE UM NOME: ");
gets(nome);
tam=strlen(nome);
printf("\n\t\tO nome digitado eh: %s ",nome);
printf("\n\nNa posicao [%d] tem o primeiro caracter digitado que eh: %c ",y, nome[0]);
printf("\n\nNa posicao [%d] tem o ultimo caracter digitado que eh: %c ",(y=tam-1),
nome[tam-1]);
printf("\n\nNa posicao [%d] tem o quarto caracter digitado que eh: %c ",y=3, nome[3]);
printf("\n\nNa posicao do primeiro ao terceiro caracter tem : ");
printf("\n\n");
for(x=0;x<=2;x++)
{
printf("\t[%d] ",x=x+0);
}
printf("\n\n");
for(x=0;x<=2;x++)
{
printf("\t %c ",nome[x]);
}
printf("\nNa posicao do primeiro ao ultimo caracter tem o nome completo: ");
printf("\n\n");
for(x=0;x<=tam-1;x++)
{
printf("\t[%d]",x=x+0);
}
printf("\n\n");
//Mostrar quantas letras tem o nome
for(x=0;x<=tam-1;x++)
{
printf("\t %c",nome[x]);
}
printf("\n\n");
printf("\nO nome %s tem %d letras: ",nome,tam);
printf("\n\n");
//Mostra o nome escrito de trs pr frente
printf("O nome %s escrito de tras pra frente eh: ",nome);
printf("\n\n\t");
for(x=tam-1;x>=0;x--)
printf("%c",nome[x]);
printf("\n\n");
//Mostra as 3 primeiras letras escritas de trs pr frente
printf(" As 3 primeiras letras escritas de tras pra frente eh: ",nome);
printf("\n\n");
for(x=tam-1;x>=0;x--)
if(x<=2)
printf("\t%c",nome[x]);
printf("\n\n");

22
22
//Mostrar da 4 letra at a ltima
printf(" Da 4 letra escrita ate a ultima eh: ",nome);
printf("\n\n");
for(x=0;x<=tam-1;x++)
if(x>2)
printf("\t%c",nome[x]);
printf("\n\n");
//Mostrar o que eh vogal e o que eh consoante
for(x=0;x<=tam-1;x++)
if(verificavogal(nome[x])==1 )
printf("\nA letra [ %c] eh uma VOGAL: ",nome[x]);
else
printf("\nA letra [ %c] eh uma CONSOANTE: ",nome[x]);
printf("\n\n");
//Mostrar quantas vogais e quantas consoantes tem o nome
for(x=0;x<=tam-1;x++)
if(verificavogal(nome[x])==1 )
soma++;
{
printf("\nO nome %s tem %d vogais: ",nome,soma);
printf("\t %c",nome[x]);
printf("\nO nome %s tem %d consoantes: ",nome,tam-soma);
printf("\t %c",nome[x]);
}
printf("\n\n");
system("pause");
return(0);
}

23
23

Usando Nmeros, calculando mdias, etc...

01)Fazer um programa que imprima a mdia aritmtica dos nmeros 8,9 e 7. A media dos
numeros 4, 5 e 6. A soma das duas mdias. A media das medias.
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<string.h>
main()
{
float n1=8, n2=9, n3=7, n4=4, n5=5,n6=6, somam, media3;
printf("\n\n A media dos numeros 8, 9 e 7 e = %2.2f\n\n",float((n1+n2+n3))/3 );
printf("\n\n A media dos numeros 4, 5 e 6 e = %2.2f\n\n",float((n4+n5+n6))/3 );
somam=((n1+n2+n3)/3)+((n4+n5+n6)/3);
printf("\n\n A soma das duas medias e = %2.2f\n\n",somam );
media3=(((n1+n2+n3)/3)+((n4+n5+n6)/3))/2;
printf("\n\n A media das medias e = %2.2f\n\n",media3);
printf("\n\n");
system("pause");
return (0);
}
02)Receber um nome no teclado e imprimi-lo dez vezes.
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<string.h>
main()
{
char nome[30];
int t=0, cont=1;
printf("\n\tDigite um nome: ");
gets(nome);
t=t+1;
printf("\t\nMostrar nome dez vezes:");
printf("\n\n");
for(t=1;t<=10;t++)
{
printf("\n %d - %s",cont,(nome));
cont=cont+1;
}
printf("\n\n");
system("pause");
return( 0);
}
03) Ler um nmero inteiro e imprimir seu sucessor e seu antecessor.
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<string.h>
main()
{
int x, n1, n2;
printf("\n\n Digite um numero: ");

24
24
scanf("%d",&x);
n1=x+1;
n2=x-1;
printf("\n\nSeu sucessor e : %d",n1);
printf("\n\nSeu antecessor e : %d",n2);
printf("\n\n");
system("pause");
return (0);
}
04) Receber um valor qualquer do teclado e imprimir esse valor com reajuste de 10%..
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<string.h>
main()
{
float va;
printf("\n\tDigite um numero: ");
scanf("%f",&va);
printf("\n\tValor reajustado em 10%% e: %2.2f\n",va*110/100);
printf("\n\n");
system("pause");
return 0;
}

05) Informar tres numeros inteiros e imprimir a mdia
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main()
{
int a,b,c;
printf("Informe um numero inteiro: ");
scanf("%d",&a);
printf("Informe um numero inteiro: ");
scanf("%d",&b);
printf("Informe um numero inteiro: ");
scanf("%d",&c);
printf("A media dos tres numeros informados e: %4.2f\n\n",float((a+b+c))/3);
system("PAUSE");
return 0;
}
06)Informe o tempo gasto numa viagem (em horas), a velocidade mdia e calcule o consumo.
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
main()
{
int horas, velmedia;
float distancia, consumo;
printf("Informe o tempo gasto na viagem em horas: ");
scanf("%d", &horas);
printf("Informe a velocidade mdia do veculo: ");
scanf("%d", &velmedia);
distancia = horas * velmedia;
consumo = distancia / 12;

25
25
printf("Foram gastos %4.2f de combustivel",consumo);
system("pause");
return 0;
}

07) Ler um nmero inteiro e imprimir seu quadrado.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main()
{
float a;
printf("Informe um numero inteiro: ");
scanf("%f",&a);
printf("O quadrado do numero informado e: %3.0f\n\n",pow(a,2));
// para usar a potencia, usa-se pow(numero, potencia)
system("PAUSE");
return 0;
}
08) Informar um saldo e imprimir o saldo com reajuste de 1%
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main()
{
float saldo;
printf("Informe o valor do saldo: ");
scanf("%f",&saldo);
printf("O saldo corrigido e %4.2f\n\n",saldo * 1.01);
system("PAUSE");
return 0;
}
09) Calcule e imprima o valor em reais de cada kw o valor em reais a ser pago o novo valor a
ser
pago por essa residencia com um desconto de 10%. Dado: 100 kilowatts custa 1/7 do salario
minimo. quantidade de kw gasto por residencia
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main()
{
float SM, kwgasto, umkw;
printf("Informe o valor do salario minimo: ");
scanf("%f",&SM);
printf("\n\nInforme total Kw gasto na residencia: ");
scanf("%f",&kwgasto);
umkw = SM/7/100;
printf("\n\nO valor de 1 Kw e: %3.2f\n\n",umkw);
printf("\nO valor a ser pago pela residencia e: %4.2f",kwgasto * umkw);
printf("\n\nNovo valor a ser pago com desconto de 10%% e: %3.2f\n\n",(kwgasto * umkw) *
0.90);
system("PAUSE");
return 0;
}
10) Informar um preo de um produto e calcular novo preo com desconto de 9%
#include <stdio.h>
#include <stdlib.h>

26
26
#include <conio.h>
#include <math.h>
int main()
{
float precoatual;
printf("Informe o preco atual do produto: ");
scanf("%f",&precoatual);
printf("\n\nNovo preco com desconto de 9%% e: %3.2f\n\n",precoatual * 0.91);
system("PAUSE");
return 0;
}
11) Clculo de um salario lquido de um professor . Sero fornecidos valor da hora aula,
numero
de aulas dadas e o % de desconto do INSS.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main()
{
float vha,nad,inss, salario, desconto;
printf("Informe o valor da hora aula: ");
scanf("%f",&vha);
printf("Informe o numero de aulas dadas: ");
scanf("%f",&nad);
printf("Informe o valor do percentual de desconto do INSS: ");
scanf("%f",&inss);
salario = vha * nad;
desconto = salario * inss /100;
printf("\n\nSalario liquido e: %3.2f\n\n",salario - desconto);
system("PAUSE");
return 0;
}
12) Ler uma temperatura em graus Celsius e transform-la em graus Fahrenheit.
Formula: F = (9*C+160)/5
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int tgc;
printf("Informe temperatura em graus Celsius: ");
scanf("%d",&tgc);
printf("\n%d graus Celsius corresponde a %3.2f graus Farenheit: \n\n", tgc,
float(9*tgc+160)/5);
system("PAUSE");
return 0;
}
13)Calcular o Consumo de um veculo conforme os dados informado no teclado: Tempo em
horas,
velocidade mdia e distncia.
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
main()
{
int horas, velmedia;
float distancia, consumo;
printf("Informe o tempo gasto na viagem em horas: ");
scanf("%d", &horas);

27
27
printf("Informe a velocidade mdia do veculo: ");
scanf("%d", &velmedia);
distancia = horas * velmedia;
consumo = distancia / 12;
printf("Foram gastos %4.2f de combustivel",consumo);
system("pause");
return 0;
}
14) Ler um numero e se for maior que 20 imprimir a metade desse numero.
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float numero;
printf("Informe um numero: ");
scanf("%f",&numero);
if (numero > 20)
printf("A metade desse numero e %3.2f", numero/2);
system("PAUSE");
return 0;
}
15) Ler 2 numeros inteiros e soma-los. Se a soma for maior que 10, mostrar o resultado da
soma.
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float numero1, numero2;
printf("Informe o primeiro numero: ");
scanf("%f",&numero1);
printf("Informe o segundo numero: ");
scanf("%f",&numero2);
if ((numero1 + numero2) > 10)
printf("\nA soma dos numeros informados e %3.2f\n\n", numero1 + numero2);
system("PAUSE");
return 0;
}
16) Ler 2 numeros inteiros e soma-los. Se a soma for maior que 10, mostrar o resultado da
soma
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float numero1, numero2, soma;
printf("Informe o primeiro numero: ");
scanf("%f",&numero1);
printf("Informe o segundo numero: ");
scanf("%f",&numero2);
soma = numero1 + numero2;
if (soma > 20)
printf("\nA soma dos numeros informados mais 8 e %3.2f\n\n", soma + 8);
else
printf("\nA soma dos numeros informados menos 5 e %3.2f\n\n", soma -5);
system("PAUSE");
return 0;

28
28
}




17) Ler 1 nmero. Se positivo, imprimir raiz quadrada senao o quadrado.
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float numero1;
printf("Informe um numero: ");
scanf("%f",&numero1);
if (numero1 > 0)
printf("\nA raiz quadrado do numero e %3.2f\n\n", sqrt(numero1));
else
printf("\nO quadrado do numero e %3.2f\n\n", pow(numero1,2));
system("PAUSE");
return 0;
}
18) Solicitar salario, perstaao. Se prestao for maior que 20% do salario, imprimir :
Emprstimo no pode ser concedido. Seno imprimir Emprstimo pode ser concedido.
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float salbruto, prestacao, porcent;
printf("Informe o salario bruto: ");
scanf("%f",&salbruto);
printf("Informe o valor da prestacao: ");
scanf("%f",&prestacao);
porcent = salbruto * 0.20;
if (prestacao > porcent)
printf("\nEmprestimo no pode ser concedito.n\n");
else
printf("\nEmprestimo pode ser concedido");
system("PAUSE");
return 0;
}
19)Ler um numero e imprimir: maior que 20, igual a 20 ou menor que 20.
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float numero;
printf("Informe um numero: ");
scanf("%f",&numero);
if (numero > 20)
printf("\nNumero informado e maior a 20.\n");
else
if (numero = 20)
printf("\nNumero informado e igual a 20.\n");
else

29
29
printf("\nNumero informado e menor que 20.\n\n");
system("PAUSE");
return 0;
}



20) Ler um numero e imprimir: maior que 20, igual a 20 ou menor que 20.
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float numero;
printf("Informe um numero: ");
scanf("%f",&numero);
if (numero > 20)
printf("\nNumero informado e maior a 20.\n");
else
if (numero = 20)
printf("\nNumero informado e igual a 20.\n");
else
printf("\nNumero informado e menor que 20.\n\n");
system("PAUSE");
return 0;
}
21) Ler um ano de nascimento e ano atual. Imprimir a idade da pessoa.
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
char nome[30], sexo;
int idade;
printf("Informe seu nome: ");
gets(nome);
printf("Informe seu sexo: ");
scanf("%c",&sexo);
printf("Informe sua idade: ");
scanf("%d",&idade);
if (sexo == 'f' || sexo == 'F' && idade < 25)
printf("\n%s. ACEITA.\n\n", nome);
else
printf("\nNAO ACEITA.\n\n");
system("PAUSE");
return 0;
}
22)Criar um algoritmo que leia os limites inferior e superior de um intervalo e imprimir todos
os
nmeros pares no intervalo aberto e seu somatrio. Suponha que os dados digitados so para
um
intervalo crescente.
Exemplo:
Limite inferior: 3 Sada: 4 6 8 10
Limite superior: 12 Soma: 28
Repare que os valores iniciais e finais (3 e 12) no entram no clculo e no so mostrados na
sada
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

30
30
#include <math.h>
#include <string.h>
main()
{
int liminferior, limsuperior,x;
float soma = 0;
printf("Informe o valor do limite inferior: ");
scanf("%d", &liminferior);
printf("\nInforme o valor do limite superior: ");
scanf("%d", &limsuperior);
// verifica se o limite inferior digitado par
if (liminferior % 2 == 0)
// se for par, soma 2 para comear com o prximo numero par
liminferior = liminferior + 2;
else
// se nao for par, aumenta 1 para ele ficar par
liminferior = liminferior + 1;
printf("\n\n");
// no limite superior subtrair 1 para ficar sempre com um numero
// menor que o limite superior digitado.
for (x=liminferior; x <= limsuperior -1; x=x+2)
{
printf("%d\t",x);
soma = soma + x;
}
printf("\n\n");
printf("Somatorio: %3.0f",soma);
printf("\n\n");
system("pause");
return 0;
}
23)Apresentar os quadrados dos nmeros inteiros de 15 a 200
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int x,soma=0;
for(x=15; x<=200;x++)
printf("O quadrado do numero %d eh: %d\n",x, x*x);

/* Pode ser feito assim tambm Usando While
x=15;
while (x <=200)
{
printf("O quadrado do numero %d eh: %d\n",x, x*x);
x=x+1;
}*/

system("pause");
return 0;
}
24)Apresentar o total da soma obtida dos cem primeiros nmeros inteiros
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int x,soma=0;

31
31
for(x=1; x<=100;x++)
soma = soma + x;
printf("A soma dos 100 primeiros numeros inteiros eh: %d\n",soma);
/* Pode ser feito assim tambem
x=1;
while (x <=100)
{
soma=soma + x;
x=x+1;
}
printf("A soma dos 100 primeiros numeros inteiros eh: %d\n",soma);
*/
system("pause");
return 0;
}
25)Apresentar todos os nmeros divisveis por 4 que sejam menores que 200.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int x;
for(x=1; x<200;x++)
if (x % 4 == 0)
printf("%d\n",x);
/* Pode ser feito assim tambem
x=1;
while (x <200)
{
if (x % 4 == 0)
printf("%d\n",x);
x=x+1;
}
*/
system("pause");
return 0;
}
26)Elaborar um programa que efetue a leitura sucessiva de valores numricos e apresente no
final
o total do somatrio, a mdia e o total de valores lidos. O programa deve fazer as leituras dos
valores enquanto o usurio estiver fornecendo valores positivos. Ou seja, o programa deve
parar
quando o usurio fornecer um valor negativo.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int x, media=0, numero=0, conta=0;
float soma = 0;
// a variavel soma tem que ser float porque se no for a media
// s da como resultado um nmero inteiro.
while (numero >= 0)
{
printf("Informe um valor positivo: ");
scanf("%d", &numero);
if (numero > 0)
{
soma=soma+numero;
conta = conta + 1;

32
32
}
}
printf("A soma eh %3.0f e a media eh %5.2f\n",soma, (soma/conta));
// %3.0f formata o numero float com 3 inteiros e zero decimal
system("pause");
return 0;
}




27) Elaborar um programa que efetue a leitura de valores positivos inteiros at que um valor
negativo seja informado. Ao final devem ser apresentados o maior e menor valores
informados
pelo usurio.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int x,numero=0, maior=0, menor=0;
// Tem que inicializar as variaveis maior e menor com zero
// Inicializa a variavel numero com zero para entrar no loop while
while (numero >= 0)
{
printf("Informe um valor positivo: ");
scanf("%d", &numero);
if (numero > 0)
// se o numero for positivo
if (numero > maior)
// se o numero informado for maior que o conteudo atual
// da variavel maior, esta variavel recebe o numero informado
maior = numero;
else
// seno a variavel menor recebe o numero informado
menor = numero;
}
printf("O maior eh %d e o menor eh %d\n", maior, menor);
system("pause");
return 0;
}
28) Receber um nmero do teclado e informar se ele divisvel por 10, por 5, por 2 ou se no
divisvel por nenhum destes.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int numero;
printf("Informe um valor positivo: ");
scanf("%d", &numero);
if (numero % 10 == 0 && numero%5 == 0 && numero % 2 == 0)
printf("O numero eh divisivel por 10, 5 e 2\n");
else
printf("O numero nao eh divisivel por 10, 5 e 2\n");
system("pause");
return 0;
}

33
33
29) Um comerciante comprou um produto e quer vend-lo com lucro de 45% se o valor da
compra
for menor que 20,00; caso contrrio, o lucro ser de 30%. Entrar com o valor do produto e
imprimir o valor da venda.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
float valor_produto;
printf("Informe o valor do produto: ");
// gets(sigla);
scanf("%f", &valor_produto);
if (valor_produto < 20)
printf("O valor da venda eh %3.2f\n", valor_produto * 1.45);
else
printf("O valor da venda eh %3.2f\n", valor_produto * 1.30);
system("pause");
return 0;
}
30) Ler a idade de uma pessoa e informar a sua classe eleitoral.
a. No-eleitor (abaixo de 16 anos)
b. Eleitor obrigatrio (entre 18 e 65 anos)
c. Eleitor facultativo (entre 16 e 18 e maior de 65 anos)
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int idade;
printf("Informe sua idade: ");
scanf("%d", &idade);
if (idade < 16)
printf("Nao eleitor.\n");
else
if (idade >= 18 && idade <=65)
printf("Eleitor obrigatorio.\n");
else
if ((idade >= 16 && idade < 18) || (idade > 65))
printf("Eleitor faculdativo.\n");
system("pause");
return 0;
}
31) Receber do teclado, vrios nmeros e verificar se eles so ou no quadrados perfeitos. O
programa termina quando o usurio digitar um nmero menor ou igual a zero.
( UM NMERO QUADRADO PERFEITO QUANDO TEM UM NMERO INTEIRO
COMO RAIZ-QUADRADA.)
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int numero,c,p;
printf("Informe um numero positivo: ");
scanf("%d", &numero);
while (numero > 0)
{
c = 1;

34
34
p = c * c;
while (p < numero)
{
c++;
p=c * c;
}
if (p == numero)
printf("\nO numero informado eh quadrado perfeito.\n");
else
printf("\nO numero informado nao eh quadrado perfeito.\n");
printf("Informe um numero positivo: ");
scanf("%d", &numero);
}
printf("\n");
system("pause");
return 0;
}
32) Receber um nmero e verificar se ele triangular.
(UM NMERO TRIANGULAR QUANDO RESULTADO DO PRODUTO DE 3
NMEROS CONSECUTIVOS. EXEMPLO: 24 = 2 * 3 * 4)
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
int num,num1,p;
num1 = 1;
printf("Digite um numero: ");
scanf("%d", &num);
p = num1 * (num1 + 1) * (num1 + 2);
while (p < num)
{
num1++;
p = num1 * (num1 + 1) * (num1 + 2);
}
if (p == num)
printf("\nEh triangular.");
else
printf("\nNao eh triangular.");
printf("\n");
system("pause");
return 0;
}
33)Ler 3 nmeros e imprimir se eles podem ou no ser lados de um tringulo.
A condio para isto que A<B+C e B<A+C e C<A+B .
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
int A,B,C;
printf("\n\t INFORME UM NUMERO : ");
scanf("%d",&A);
printf("\n\t INFORME UM SEGUNDO NUMERO : ");
scanf("%d",&B);
printf("\n\t INFORME UM TERCEIRO NUMERO : ");
scanf("%d",&C);

35
35
if(A<B+C != B<A+C != C<A+B)
printf("\n\n ESTES NUMEROS SAO LADOS DE UM TRANGULO");
else
printf("\n\n ESTES NUMEROS NAO SAO LADOS DE UM TRIANGULO");
printf("\n\n ");
system("pause");
return(0);
}
34) Ler 2 valores e somar os dois. Caso a soma seja maior que 10, mostrar a soma.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
main()
{
int N1,N2;
printf("\nINFORME PRIMEIRO NUMERO: ");
scanf("%d",&N1);
printf("\nINFORME SEGUNDO NUMERO: ");
scanf("%d",&N2);
if ((N1+N2)>10)
printf("\nA SOMA E: %d",N1+N2);
printf("\n\n");
system("pause");
return(0);
}
35) Entrar com um nmero e imprimir a raiz quadrada do nmero. Caso ele seja positivo. E o
quadrado dele caso seja negativo.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
main()
{
int NUM;
printf("\nINFORME NUMERO: ");
scanf("%d",&NUM);
if (NUM>0)
printf("\nA RAIZ QUADRADA DO NUMERO E:%f2.2",sqrt(NUM));
else
printf("\nO QUADRADO DO NUMERO E:%2.2f",pow(NUM,2));
printf("\n\n");
system("pause");
return(0);
}
36) Ler um nmero inteiro e verificar se est compreendido entre 20 e 80. Se tiver, imprimir
parabns, seno imprimir chimpanz.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
main()
{
int num;
printf("\nINFORME UM NUMERO INTEIRO: ");
scanf("%d",&num);
if (num>=20 && num<=80)
printf("\nPARABENS");
else

36
36
printf("\n 0 CHIMPANZE");
printf("\n\n");
system("pause");
return(0);
}
37)Ler um nmero do teclado e imprimir todos os nmeros de 1 at o nmero lido. Imprimir o
produto dos nmeros.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
main()
{
// x so os numeros menores e iguais ao numero digitado e tem que ser >1.
// max o nmero digitado.
// p o produto dos numeros gerados e comea com 1.
int x, max=0, p=1;
printf("\n\t INFORME UM NUMERO : ");
scanf("%d",&max);
for(x=1;x<=max;x++)
{
//Valor menor ou igual ao numero informado.
printf("\n\t Numero gerados: %d ",x);
p=p*x;
}
printf("\n\n O produto dos numeros gerados e: %d",p);
printf("\n\n");
system("pause");
return(0);
}
38) Ler um nmero e imprimir igual a 20, menor que 20, maior que 20.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
main()
{
int num;
printf("\nINFORME UM NUMERO INTEIRO: ");
scanf("%d",&num);
if (num<20)
printf("\O NUMERO E MENOR QUE 20");
else if (num>20)
printf("\O NUMERO E MAIOR QUE 20");
else printf("O NUMERO E IGUAL A 20");
printf("\n\n");
system("pause");
return(0);
}
39) Informe o tipo de carro (A, B e C). Informe o percurso rodado em km e calcule o consumo
estimado, conforme o tipo, sendo (A=8, B=9 e C=12) km/litro
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
float percurso;
char tipo;

37
37

printf("Informe o tipo do carro: ");
scanf("%c", &tipo);
printf("\nInforme o percurso do carro: ");
scanf("%f",&percurso);
if (tipo == 'a' || tipo == 'A')
printf("O consumo estimado do carro A sera %3.2f\ litros.\n",percurso/8);
else
if (tipo == 'b' || tipo == 'B')
printf("O consumo estimado do carro A sera %3.2f litros.\n",percurso/9);
else
if (tipo == 'c' || tipo == 'C')
printf("O consumo estimado do carro A sera %3.2f litros.\n",percurso/12);
system("pause");
return 0;
}


40)Escrever um programa que leia, valores inteiros, at ser lido o valor-99. Quando isso
acontecer
o programa dever escrever a soma e a mdia dos valores lidos.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int num, soma=0;
float media=0, cont=0;
printf("\n DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&num);
while(num!=-99)
{
soma=soma+num;
cont++;
printf("\n DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&num);
}
media=soma/cont;
printf("\n\n A soma dos numeros e: %d ",soma);
printf("\n\n A media dos numeros e: %3.2f ",media);
printf("\n\n");
system("pause");
return(0);
}
41)Escrever um programa que receba vrios nmeros inteiros no teclado. E no final imprimir a
mdia dos nmeros multiplos de 3. Para sair digitar 0(zero).
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int num, soma=0;
float media=0, cont=0;
printf("\n DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&num);
if(num %3==0 && num!=0)
{
soma=soma+num;
cont++;
}
while(num!=0)

38
38
{
printf("\n DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&num);

if(num %3==0 && num!=0)
{
soma=soma+num;
cont++;
}}
media=soma/cont;
printf("\n\n A media dos numeros e: %3.2f ",media);
printf("\n\n");
system("pause");
return(0);

}





42) Receber dois numeros e imprimi-los em ordem crescente.
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<string.h>
main()
{
int num1, num2;
printf("\n\n Digite um numero: ");
scanf("%d",&num1);
printf("\n\n Digite um numero: ");
scanf("%d",&num2);
if(num1<num2)
printf("\n\tOs numeros digitados na ordem crescente e: %d e %d\t",num1,num2);
else
printf("\n\tOs numeros digitados na ordem crescente e: %d e %d\t",num2,num1);
printf("\n\n");
system("pause");
return 0;
}
43) Escrever um programa que receba vrios nmeros inteiros no teclado e no final imprimir a
mdia dos nmeros multiplos de 3. Para sair digitar 0(zero).
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int num, soma=0;
float media=0, cont=0;
printf("\n DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&num);
if(num %3==0 && num!=0)
{
soma=soma+num;
cont++;
}
while(num!=0)
{
printf("\n DIGITE UM NUMERO INTEIRO: ");

39
39
scanf("%d",&num);
if(num %3==0 && num!=0)
{
soma=soma+num;
cont++;
}}
media=soma/cont;
printf("\n\n A media dos numeros e: %3.2f ",media);
printf("\n\n");
system("pause");
return(0);
}











44) 3)Ler um nmero do teclado e imprimir todos os nmeros de 1 at o nmero lido. Imprimir
o
produto dos nmeros.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
main()
{
// x so os numeros menores e iguais ao numero digitado e tem que ser >1.
// max o nmero digitado.
// p o produto dos numeros gerados e comea com 1.
int x, max=0, p=1;
printf("\n\t INFORME UM NUMERO : ");
scanf("%d",&max);
for(x=1;x<=max;x++)
{
//Valor menor ou igual ao numero informado.
printf("\n\t Numero gerados: %d ",x);
p=p*x;
}
printf("\n\n O produto dos numeros gerados e: %d",p);
printf("\n\n");
system("pause");
return(0);
}
45) Escrever um programa, que leia valores inteiros at ser lido o valor-99. Quando isso
acontecer
o programa dever escrever a soma e a mdia dos valores lidos.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int num, soma=0;
float media=0, cont=0;
printf("\n DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&num);
while(num!=-99)
{

40
40

soma=soma+num;
cont++;
printf("\n DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&num);
}
media=soma/cont;
printf("\n\n A soma dos numeros e: %d ",soma);
printf("\n\n A media dos numeros e: %3.2f ",media);
printf("\n\n");
system("pause");
return(0);

}
46) Preencher um vetor com nmeros inteiros(8unidades); solicitar um nmero do teclado.
Pesquisar se esse nmero existe no vetor. Se existir,imprimir em qual posio do vetor e qual a
ordem foi digitado. Se no existir, imprimir MSG que no existe.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int x, vet[8], num, achei=0;
for(int x=0;x<8;x++)
{
printf("\n[%d] Digite um numero: ",x);
scanf("%d",&vet[x]);
}
printf("\n\n");
printf("Digite um valor a ser pesquisado: ");
scanf("%d",&num);
for(int x=0;x<8;x++)
if(vet[x]==num)
{
printf("\n O numero %d esta na posicao %d: ",num,x);
printf("\n O numero %d foi o numero %d a ser digitado: ",num,(x+1));
achei=1;
}
if(achei!=1)
printf("\n Este numero nao existe");
printf("\n\n");
system("pause");
return(0);
}
47) Preencher um vetor com nmeros inteiros(8unidades); solicitar um nmero do teclado.
Pesquisar se esse nmero existe no vetor. Se existir,imprimir em qual posio do vetor. Se no
existir,imprimir MSG que no existe.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int x, vet[8], num, achei=0;
for(int x=0;x<8;x++)
{
printf("\n[%d] Digite um numero: ",x);
scanf("%d",&vet[x]);
}
printf("\n\n");
printf("Digite um valor a ser pesquisado: ");

41
41
scanf("%d",&num);
for(int x=0;x<8;x++)

if(vet[x]==num)
{
printf("\n O numero %d esta na posicao %d: ",num,x);
achei=1;
}
if(achei!=1)
printf("\n Este numero nao existe");

printf("\n\n");
system("pause");
return(0);

}


42
42
WHILE E FOR

01) Solicitar a idade de vrias pessoas e imprimir: Total de pessoas com menos de 21 anos.
Total de
pessoas com mais de 50 anos. O programa termina quando idade for =-99.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int idade,contador21=0,contador50=0;
printf("\n DIGITE A IDADE: ");
scanf("%d",&idade);
while(idade!=-99)
{
if(idade<21)
contador21++;
if(idade>50)
contador50++;
printf("\n DIGITE A IDADE(PARA ENCERRAR DIGITE -99) : ");
scanf("%d",&idade);
}
printf("\n O TOTAL DE PESSOAS COM MENOS DE 21 ANOS E:%d",contador21);
printf("\n O TOTAL DE PESSOAS COM MAIS DE 50 ANOS E:%d",contador50);
printf("\n\n");
system("pause");
return(0);
}
02) Solicitar um nmero entre 1 e 4. Se a pessoas digitar um nmero diferente, mostrar a
mensagem "entrada invlida" e solicitar o nmero novamente. Se digitar correto mostrar o
nmero digitado.
#include<stdio.h>
#include<stdlib.h>
main()
{
int num;
printf("\n\n INFORME UM NUMERO ENTRE 1 e 4: ");
scanf("%d",&num);
while(num<1||num>4)
{
printf("\n O NUMERO DIGITADO EST INCORRETO. DIGITE NOVAMENTE: ");
scanf("%d",&num);
}
printf("\n\n O NUMERO DIGITADO E:% d",num);
printf("\n\n");
system("pause");
return(0);
}
03) Solicitar um nmero entre 1 e 4. Se a pessoa digitar um nmero diferente, mostrar a
mensagem
"entrada invlida" e solicitar o nmero novamente. Se digitar correto mostrar o nmero
digitado.
#include<stdio.h>
#include<stdlib.h>
main()
{
int num=-1;
while(num<1||num>4)
{
printf("\n\n INFORME UM NUMERO ENTRE 1 e 4: ");

43
43
scanf("%d",&num);
if(num<1 || num>4)
printf("\n VOCE NAO DIGITOU UM NUMERO ENTRE 1 e 4. ENTRADA INVALIDA. ");
}
printf("\n\n NUMERO DIGITADO:% d",num);
printf("\n\n");
system("pause");
return(0);

}
04)Fazer um programa que gere a sada.
* * * * * * * * * * * *
O,2,4,6,8,10,12,14
* * * * * * * * * * * *
#include<stdio.h>
#include<stdlib.h>
main()
{
int x;
for(x=1;x<=19;x++)
printf("%c",'*');
printf("\n");
for(x=0;x<=14;x=x+2)
printf("%d ",x);
printf("\n");
for(x=1;x<=19;x++)
printf("%c",'*');
printf("\n");
system("pause");
return(0);
}

05) Solicitar um nome e escrev-lo.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char nome[30]; int x,t;
printf("\n\n DIGITE UM NOME: ");
gets(nome);
t=strlen(nome);
for(x=0;x<=t-1;x++)
printf("%c",nome[x]);
printf("\n\n");
system("pause");
return(0);
}
06) Solicitar um nome e escrev-lo de trs pra frente.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char nome[30]; int x,t;
printf("\n\n DIGITE UM NOME: ");
gets(nome);
t=strlen(nome);
for(x=t+1;x>=0;x++)

44
44
printf("%c",nome[x]);
printf("\n\n");
system("pause");
return(0);

}
07) Solicitar um nome e escrev-lo de trs pra frente.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char nome[30]; int x,t;
printf("\n\n DIGITE UM NOME: ");
gets(nome);
t=strlen(nome);
for(x=t-1;x>=0;x--)
printf("%c",nome[x]);
printf("\n\n");
system("pause");
return(0);
}
08) Fazer um programa que receba um valor n no teclado e determine o maior. A condio de
trmino do programa quando o usurio digitar zero.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int NUM,maior=NUM;
printf("\n DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&NUM);
while(NUM!=0)
{
if(NUM>maior)
maior=NUM;
printf("\n DIGITE OUTRO NUMERO(PARA ENCERRAR DIGITE 0) : ");
scanf("%d",&NUM);
}
printf("\n O MAIOR NUMERO E: %d",maior);
printf("\n\n");
system("pause");
return(0);
}
09)Apresentar o total da soma obtida dos cem primeiros nmeros inteiros.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
float soma=0;int x;
for (x=1;x<=100;x++)
soma=soma+x;
printf("\n O TOTAL DA SOMA E: %4.3f",soma);
printf("\n\n");
system("pause");
return(0);
}


45
45
10)Receber um numero e verificar se est entre 100 e 200. Se estiver na faixa,imprimir: "Voce
digitou um numero entre 100 e 200", Seno estiver na faixa,imprimir:"Voce digitou um
numero
fora da faixa entre100 e 200".
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
main()
{
int num;
printf ("informe um numero:");
scanf("%d",&num);
if(num>=100 && num<=200)
printf("Voce digitou um numero entre 100 e 200");
else
printf("Voce digitou um numero fora da faixa 100 e 200");
printf ("\n\n");
system("PAUSE");
return 0;
}

46
46
VETORES

01)Preencher um vetor com nmeros inteiros(8unidades); solicitar um nmero do teclado.
Pesquisar se esse nmero existe no vetor. Se existir,imprimir em qual posio do vetor. Se no
existir,imprimir MSG que no existe.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int x, vet[8], num, achei=0;
for(int x=0;x<8;x++)
{
printf("\n[%d] Digite um numero: ",x);
scanf("%d",&vet[x]);
}
printf("\n\n");
printf("Digite um valor a ser pesquisado: ");
scanf("%d",&num);
for(int x=0;x<8;x++)

if(vet[x]==num)
{
printf("\n O numero %d esta na posicao %d: ",num,x);
achei=1;
}
if(achei!=1)
printf("\n Este numero nao existe");

printf("\n\n");
system("pause");
return(0);

}
2)Preencher um vetor com os numeros pares do nmero 2 a 20.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int vet[10],x, y=0;
// preechimento do vetor vet
for(x=0;x<=9;x++)
{
vet[x]=y+2;
y=y+2;
}
//exibindo o vetor vet, por isso repete o for.
for(x=0;x<=9;x++)
//exibindo os valores pares 2,4,6,8,10,12,14,16,18,20.
printf(" %d ",vet[x]);
printf("\n\n");
system("pause");
return(0);

}


47
47
3)Preencher um vetor com os numeros pares do nmero 2 a 20. Preencher um vetor com os
numeros de 10 a 19. Somar os vetores acima.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int x, y=0, vet[10],vet1[10];
// preechimento do vetor vet
for(x=0;x<=9;x++)
{
vet[x]=y+2;
y=y+2;
}
//exibindo o vetor vet
for(x=0;x<=9;x++)
//exibindo os valores pares 2,4,6,8,10,12,14,16,18,20.
printf("\t %d ",vet[x]);
// preechimento do vetor vet1
for(x=0;x<=9;x++)
{
vet1[x]=x+10;
}
//exibindo o vetor vet1
for(x=0;x<=9;x++)
//exibindo os valores pares 10,11,12,13,14,15,16,17,18,19,20.
printf("\t %d ",vet1[x]);
//preechimento da soma dos vetores vet[x] + vet1[x]
for(x=0;x<=9;x++)
//exibindo a soma dos valores 2+10,4+11,6+12,8+13,10+14,12+15,14+16,16+17,18+18,20+19.
printf("\t %d ",vet[x]+vet1[x]);
printf("\n\n");
system("pause");
return(0);
}
4)Preencher um vetor de 8 elementos inteiros. Mostrar o vetor e informar quantos nmeros
so
maior que 30, Somar estes nmeros. Somar todos os nmeros.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int vet1[8], x, cont=0, soma=0, soma2=0;
for(x=0;x<=7;x++)
{
printf("\nDigite um valor: ");
scanf("%d",&vet1[x]);
if(vet1[x]>30)
{
cont++;
soma=soma+vet1[x];
}
}
for(x=0;x<=7;x++)
printf("\t%d",vet1[x]);
printf("\n\n %d Numeros sao maiores que 30",cont);
printf("\n\n A Soma dos numeros maiores que 30 e = %d",soma);
for(x=0;x<=7;x++)
soma2=soma2+vet1[x];
printf("\n\n A Soma dos numeros digitados e = %d",soma2);
printf("\n\n");

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

}
5)Preencher um vetor com 3 nomes com 20 letras no mximo cada. Imprimir os Nomes.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include <string.h>
main()
{
char nome[3][20],;
int x;
for(x=0;x<=2;x++)
{
printf("\n[%d] Digite o nome : %d ",x,(x+1));
gets(nome[x]);
}
for(x=0;x<=2;x++)
{
printf("\n %s",nome[x],x);
printf("\tO NOME %s tem %d letras",nome[x],strlen(nome[x]));
}
printf("\n\n");
system("pause");
return(0);

}
6) Neste exrcicio temos dois vetores com 5 posies (0 a 4). Em cada vetor entraremos com
cinco
nmeros. Mostrar os nmeros e depois somar nmeros que perteam a mesma posio ou
seja:
[0]+[0],[1]+[1],...
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int vet1[5], vet2[5], num, cont=0, x;
printf("\n");
printf("\nVetor 1");
for(x=0;x<=4;x++)
{
//este contador vai mostrar em qual posio o nmero digitado est.
cont=0+x;
printf("\t[%d] Digite um valor: ",cont);
scanf("%d",&num);
vet1[x]=num;
}
printf("\n\n");
printf("\nVetor 2");
for(x=0;x<=4;x++)
{
//este contador vai mostrar em qual posio o nmero digitado est.
cont=0+x;
printf("\t[%d] Digite um valor: ",cont);
scanf("%d",&num);
vet2[x]=num;
}
printf("\n\n");
//Este for vai mostrar os valores de vet1.
printf("\nVetor 1");
for(x=0;x<=4;x++)

49
49
printf("\t%d ",vet1[x]);
printf("\n");
//Este for vai mostrar os valores de vet2.
printf("\nVetor 2");
for(x=0;x<=4;x++)
printf("\t%d ",vet2[x]);
printf("\n\n");
printf("\n\nSoma:");
//Este for vai mostrar a Soma do vet1 + vet2.
for(x=0;x<=4;x++)
printf("\t%d ",vet1[x]+vet2[x]);
printf("\n\n");
system("pause");
return(0);

}
7)Preencher um vetor de 8 elementos inteiros. Mostrar o vetor e informar quantos nmeros
so
maior que 30.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int vet1[8], x, cont=0;
for(x=0;x<=7;x++)
{
printf("\nDigite um valor: ");
scanf("%d",&vet1[x]);
if(vet1[x]>30)
cont++;
}
for(x=0;x<=7;x++)
printf("\t%d",vet1[x]);
printf("\n\n %d Numeros > que 30",cont);
printf("\n\n");
system("pause");
return(0);
}
8) Preencher um vetor de 8 elementos inteiros. Mostrar o vetor na horizontal com\t. Calcular a
mdia do vetor. Mostrar quantos numeros so mltiplos de 5. Quantos nmeros so maiores
que
10 e menores que 30. Qual o maior nmero do vetor.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int vet1[8], x, cont=0, m5=0, NF=0, MN=0;
float soma=0;
for(x=0;x<=7;x++)
{
printf("Informe um numero %d: ", x+1);
scanf("%d",&vet1[x]);
printf("\n");
}
printf("\n\n");
for(x=0;x<=7;x++)
printf("\t%d",vet1[x]);
printf("\n\n");
for(x=0;x<=7;x++)
{

50
50
soma=soma+vet1[x];
//multiplos de 5
if(vet1[x]%5==0)
m5++;
//Maior que 10 e maior que 30
if(vet1[x]>10 && vet1[x]<30)
NF++;
//maior valor
if(vet1[x]>MN)
MN=vet1[x];
}
printf(" __________________________________________");
printf("\n| A media do vetor e: %3.2f |",soma/8);
printf("\n| Multiplos de 5: %d |",m5);
printf("\n| Entre 10 e 30: %d |",NF);
printf("\n| Maior numero: %d |",MN);
printf("\n|__________________________________________|");

printf("\n\n");
system("pause");
return(0);

}
9) Preencher um vetor com 3 nomes e mostrar quantas letras A e E tem nos 3 nome.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
int x, m;
char nome[3][30],conta=0, conte=0, tam=0;
for(x=0;x<3;x++)
{
printf("\tDigite um nome: ");
gets(nome[x]);
}
for(x=0;x<3;x++)
{
tam=strlen(nome[x]);
for(m=0;m<=tam-1;m++)
{
if(nome[x][m]=='A'||nome[x][m]=='a')
conta++;
if(nome[x][m]=='E' || nome[x][m]=='e')
conte++;
}
}
printf("Nos nomes digitados tem %d letras A",conta);
printf("\nNos nomes digitados tem %d letras E",conte);

printf("\n\n");
system("pause");
return(0);
}
10) Informar 3 nomes. Mostrar quantas letras "A" e "E", possuem.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
main()

51
51
{
char n[3][30], conte=0,conta=0, tam=0;
int x, m;
for(x=0;x<3;x++)
{
printf("Informe nome %d: ", x+1);
gets(n[x]);
printf("\n");
}
for(x=0;x<3;x++)
{
tam=strlen(n[x]);
for(m=0; m<=tam-1 ;m++)
{
if(n[x][m]=='A'||n[x][m]=='a')
conta++;
if(n[x][m]=='E'||n[x][m]=='e')
conte++;
}
}
printf("\n _________________________________________");
printf("\n| Ha %d letras A, %d letras E |",conta,conte);
printf("\n|_________________________________________|");
printf("\n\n");
system("pause");
return(0);
}

11)Armazenar em Vetores, Nomes e Notas PR1 e PR2 de 6 alunos. Calcular a mdia de cada
aluno
e imprimir aprovado se a mida for maior que 5 e reprovado se mdia for menor ou igual a 5.
OBS.: 2 vetores para as notas tipo float. 1 vetor para os nomes. 1 vetor para a mdia. 1 vetor
para situao.
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include<math.h>
main()
{
float PR1[3], PR2[3], media[3];
char nome[3][30],nome1[3][30], situacao[3][50];
int x, y=1;
for(x=0;x<3;x++)
{
printf("Informe nome %d: ",x+1);
gets(nome[x]);
printf("Informe nota %d do aluno %s: ",y,nome[x]);
scanf("%f",&PR1[x]);
gets(nome1[x]);
y++;
printf("Informe nota %d do aluno %s: ",y,nome[x]);
scanf("%f",&PR2[x]);
gets(nome1[x]);
y=1;
}
for(x=0;x<3;x++)
{
media[x]=(PR1[x]+PR2[x])/2;
if(media[x]>5)
strcpy(situacao[x],"Aprovado Parabens");
else
strcpy(situacao[x],"Reprovado - Vai estudar chimpanze");
}

52
52
printf("__________________________________________________________________");
printf("\n\nNome\tNota1\t\tNota2\tMedia\tSituacao");
printf("\n________________________________________________________________");
for(x=0;x<3;x++)
{
printf("\n%s\t%3.2f\t\t%3.2f\t%3.2f\t%s",nome[x],PR1[x],PR2[x],media[x],situacao[x]);
}
printf("\n________________________________________________________________");

printf("\n\n");
system("pause");
return(0);
}
12)Armazenar em Vetores, Nomes e Notas PR1 e PR2 de 6 alunos. Calcular a mdia de cada
aluno
e imprimir aprovado se a mida for maior que 5 e reprovado se mdia for menor ou igual a 5.
OBS.: 2 vetores para as notas tipo float. 1 vetor para os nomes. 1 vetor para a mdia. 1 vetor
para situao.
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include<math.h>
main()
{
float PR1[3], PR2[3], media[3];
char nome[3][30],nome2[3][30], situacao[3][10];
int x,z=1;
for(x=0;x<3;x++)
{
printf("Informe nome %d: ",x+1);
gets(nome[x]);
printf("Informe nota %d do aluno %s: ",z,nome[x]);
scanf("%f",&PR1[x]);
gets(nome2[x]);
z++;
printf("Informe nota %d do aluno %s: ",z,nome[x]);
scanf("%f",&PR2[x]);
gets(nome2[x]);
z=1;
}
for(x=0;x<3;x++)
{
media[x]=(PR1[x]+PR2[x])/2;
if(media[x]>5)
strcpy(situacao[x],"Aprovado");
else

strcpy(situacao[x],"Reprovado");
}
printf("_________________________________________");
printf("\n\nNome\tNota1\tNota2\tMedia\tSituacao");
printf("\n_________________________________________");
for(x=0;x<3;x++)
{
printf("\n%s\t%3.2f\t%3.2f\t%3.2f\t%s",nome[x],PR1[x],PR2[x],media[x],situacao[x]);
}
printf("\n_________________________________________");

printf("\n\n");
system("pause");
return(0);
}

53
53
13)Preencher um vetor com 6 numeros e mostra-los na tela.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
int x, vetp[6];
for(x=1; x<=6; x++)
{
printf ("\tDigite um numero: ");
scanf("%d",&vetp[x]);
printf ("\n");
}
for(x=1; x<=6; x++)
printf ("%d\t",vetp[x]);
printf ("\n");
printf("\n");
system("pause");
return(0);
}
14) Preencher um vetor com 5 numeros e a medida que for digitado o numero, calcular o cubo
e
mostrar em outro vetor. Mostrar os dois vetores.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
float vetp[5], vetc[5];
int x;
printf ("\n");
for(x=1; x<=5; x++)
{
printf ("\tDigite um numero: ");
scanf("%f",&vetp[x]);
vetc[x]=pow(vetp[x],3);
printf (" %3.0f",vetc[x]);
printf ("\n");
}
printf("\n");
system("pause");
return(0);
}
15) Preencher um vetor com 5 numeros e guardar o cubo dos numeros em outro vetor.
Mostrar os
dois vetores.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
float vetp[5], vetc[5];
int x;
printf ("\n");
for(x=1; x<=5; x++)
{
printf ("\tDigite um numero: ");
scanf("%f",&vetp[x]);
vetc[x]=pow(vetp[x],3);

54
54
printf ("\n");
}
for(x=1; x<=5; x++)
printf (" %3.0f\t",vetc[x]);
printf ("\n");
printf("\n");
system("pause");
return(0);
}
16)Preencher um vetor com os numeros 10 a 20, e depois mostrar os elementos pares do
vetor de
trs pr frente. E tambm mostrar os nmeros mpares.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
system("color E"); // as cores vao de 0 a 15
int z,x,vet[11], t=10;
for(z=0; z<11; z++)
{
vet[z]= t;
t++;
}
printf("\n\n");
//este for vai contar os pares de tras pra frente.
for(z=10; z>=0; z=z-2)
printf("%d\t",vet[z]);
printf("\n\n");
for(x=1; x<11; x=x+2)
printf("%d\t",vet[x]);
printf("\n");
system("pause");
return(0);
}
17)Preencher um vetor com os numeros 10 a 20, e depois mostrar os elementos pares do
vetor de
trs pr frente.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
int z, vet[11], t=10;
for(z=0; z<11; z++)
{
vet[z]= t;
t++;
}
printf("\n\n");
//este for vai contar os pares de tras pra frente.
for(z=10; z>=0; z=z-2)
printf("%d\t",vet[z]);
printf("\n\n");
system("pause");
return(0);
}

55
55
18)Preencher um vetor com os numeros 10 a 20, e depois mostrar os elementos mpares do
vetor.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
system("color 6");
int z, vet[11], t=10;
for(z=0; z<11; z++)
{
vet[z]= t;
t++;
//printf("%d\t",vet[z]); Caso eu quisesse mostrar o vetor completo
}
printf("\n\n");
for(z=1; z<11; z=z+2)
printf("%d\t",vet[z]);
printf("\n");
system("pause");
return(0);
}
19)Preencher um vetor com 5 numeros inteiros, solicitados no teclado e mostrar outro vetor
com o
cubo dos nmeros do primeiro vetor.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
system("color F5");
int z;
float vetcubo[5], vet[5];
for(z=0;z<5;z++)
{
printf("Digite um numero: ");
scanf("%f",&vet[z]);
printf("\n");
vetcubo[z]=pow(vet[z],3);
}
for(z=0;z<5;z++)
printf("%3.2f\t", vetcubo[z]);
printf("\n");
system("pause");
return(0);
}
20) Preencher um vetor com os numeros 10 a 20, e depois mostrar o vetor.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
int z, vet[11], t=10;
for(z=0; z<11; z++)
{
vet[z]= t;
t++;

56
56
}
for(z=0; z<11; z++)
printf("%d\t",vet[z]);
printf("\n");
system("pause");
return(0);
}



21) Preencher um vetor com os numeros 10 a 20, e depois mostrar o vetor.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
int z, vet[11], t=10;
for(z=0; z<11; z++)
{
vet[z]= t;
t++;
}
for(z=0; z<11; z++)
printf("%d\t",vet[z]);

printf("\n");
system("pause");
return(0);
}
22)Preencher um vetor com 5 numeros inteiros, solicitados no teclado e mostrar outro vetor
com o
cubo dos nmeros do primeiro vetor.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
system("color F5");
int z;
float vetcubo[5], vet[5];
for(z=0;z<5;z++)
{
printf("Digite um numero: ");
scanf("%f",&vet[z]);
printf("\n");
vetcubo[z]=pow(vet[z],3);
}
for(z=0;z<5;z++)
printf("%3.2f\t", vetcubo[z]);
printf("\n");
system("pause");
return(0);
}
23) Preencher um vetor com os numeros 10 a 20, e depois mostrar os elementos mpares do
vetor.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

57
57
#include<conio.h>
#include<string.h>
main()
{
system("color 6");
int z, vet[11], t=10;
for(z=0; z<11; z++)
{
vet[z]= t;
t++;
//printf("%d\t",vet[z]); Caso eu quisesse mostrar o vetor completo
}
printf("\n\n");
for(z=1; z<11; z=z+2)
printf("%d\t",vet[z]);
printf("\n");
system("pause");
return(0);
}
24) Preencher um vetor com os numeros 10 a 20, e depois mostrar os elementos pares do
vetor de
trs pr frente.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
int z, vet[11], t=10;
for(z=0; z<11; z++)
{
vet[z]= t;
t++;
}
printf("\n\n");
//este for vai contar os pares de tras pra frente.
for(z=10; z>=0; z=z-2)
printf("%d\t",vet[z]);
printf("\n\n");
system("pause");
return(0);
}
25) Preencher um vetor com os numeros 10 a 20, e depois mostrar os elementos pares do
vetor de
trs pr frente. E tambm mostrar os nmeros mpares.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<string.h>
main()
{
system("color E"); // as cores vao de 0 a 15
int z,x,vet[11], t=10;
for(z=0; z<11; z++)
{
vet[z]= t;
t++;
}
printf("\n\n");
//este for vai contar os pares de tras pra frente.
for(z=10; z>=0; z=z-2)

58
58
printf("%d\t",vet[z]);
printf("\n\n");
for(x=1; x<11; x=x+2)
printf("%d\t",vet[x]);
printf("\n");
system("pause");
return(0);
}



59
59
FUNES

01)Funo preencher Vetor, imprimir o Vetor, imprimir o quadrado, imprimir o primeiro e o
ultimo numeros
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
void preenche(int vetp[])
{
int x;
for (x=0; x<6; x++)
{
// [%d] e o x vao mostrar a posio do nmero digitado
printf ("\t[%d] Digite um numero: ",x);
scanf("%d",&vetp[x]);
printf ("\n");
}
}
void imprimevet(int vetp[])
{
int x;
for (x=0; x<6; x++)
printf (" [%d] %d\t",x,vetp[x]);
}
void quadrado(int vetp[])
{
int x;
for(x=0; x<6; x++)
printf("%d\t",vetp[x]*vetp[x]);
}
void primultimo(int vetp[])
{
printf ("%d\t %d\t",vetp[0], vetp[5]);
}

int vetp[5];
main()
{
int x, resp;
resp=1;

while(resp!=0)
{
printf("\n 1 - Preenche o vetor: ");
printf("\n");
printf("\n 2 - Imprime o vetor: ");
printf("\n");
printf("\n 3 - Imprime o quadrado do vetor original: ");
printf("\n");
printf("\n 4 - Imprime o primeiro e ultimo numero: ");
printf("\n");
printf("\n 0 - Sair do programa: ");
scanf("%d",&resp);
printf("\n");
if(resp==0)break;
if(resp==1)
preenche(vetp);
if(resp==2)
imprimevet(vetp);

60
60
if(resp==3)
quadrado(vetp);
if(resp==4)
primultimo(vetp);
printf("\n");
system("pause");
system("cls");
}
return(0);
}
02) Criar uma funo que retorna o seguinte: A funo recebe 3 valores float e retornar o
quadrado do 1 + a soma dos outros dois. Vai retornar o tipo inteiro.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
float calcula (float x, float y, float z)
{
return (pow(x,2)+(y+z));
}

main()
{
printf("Resultado: %3.2f\n", calcula(2,3,4));
printf("\n\n");
system("pause");
return(0);
}
03)Criar uma funo que retorna o seguinte: A funo recebe 3 valores float (n1,N2,n3)e
retornar
o (x*x)+y+z ou seja : O quadrado do 1 + a soma dos outros dois. Vai retornar o tipo inteiro.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
float calcula (float x, float y, float z)
{
return (pow(x,2)+(y+z));
}

main()
{
int x;
float vet[3];
for(x=0;x<=2;x++)
{
printf("\n[%d] digite um numero: ",x);
scanf("%f",&vet[x]);
}
printf("\n\nResultado: %3.2f\n", calcula(vet[0],vet[1],vet[2]));
printf("\n\n");
system("pause");
return(0);
}








61
61
04) Criar uma funo que receba um caractere como parmetro e retorne 1 (um) caso seja
uma
vogal e zero caso no seja.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int verificavogal (char M)
{
if(M=='a' || M=='A' || M=='e' || M=='E'
|| M=='i' || M=='I' || M=='o' || M=='O' || M=='u' || M=='U')
return(1);
else
return(0);
}

main()
{
char x;
printf("Digite uma letra: ");
scanf("%c",&x);
if(verificavogal(x)==1)
printf("\nA letra [ %c ] eh uma vogal: ",x);
else
printf("\nA letra [ %c ] eh uma constante: ",x);
printf("\n\n");
system("pause");
return(0);
}
05) Criar um programa que receba um nome como parmetro e retorne quais letras so vogais
e
quais so as constantes. Usar uma funo que verifica se uma vogal.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int verificavogal (char M)
{
if(M=='a' || M=='A' || M=='e' || M=='E'
|| M=='i' || M=='I' || M=='o' || M=='O' || M=='u' || M=='U')
return(1);
else
return(0);
}

main()
{
char nome[30];
int x,t;
printf("\nDigite um nome: ");
gets(nome);
t=strlen(nome);
for(x=0;x<=t-1;x++)
if(verificavogal(nome[x])==1 )
printf("\nA letra [ %c] eh uma VOGAL: ",nome[x]);
else
printf("\nA letra [ %c] eh uma CONSTANTE: ",nome[x]);
printf("\n\n");
system("pause");
return(0);
}




62
62
06) Criar uma funo que retorna o seguinte: A funo recebe 3 valores float e retornar o
quadrado do 1 + a soma dos outros dois. Vai retornar o tipo inteiro.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
float calcula (float x, float y, float z)
{
return (pow(x,2)+(y+z));
}

main()
{
int x, y, z;
float vet[3];
printf("\nDigite um numero: ");
scanf("%d",&x);
printf("\nDigite um numero: ");
scanf("%d",&y);
printf("\nDigite um numero: ");
scanf("%d",&z);
printf("\n\nO Resultado e: %3.2f\n", calcula(x,y,z));
printf("\n\n");
printf("%f\t",vet[0]);
scanf("%f",&vet[x]);
printf("%f\t",vet[1]);
scanf("%f",&vet[x]);
printf("%f\t",vet[2]);
scanf("%f",&vet[x]);
printf("\n\nO Resultado e: %3.0f\n", calcula(vet[0],vet[1],vet[2]));
printf("\n\n");
system("pause");
return(0);
}
07) Criar um programa que receba dois nomes e retorne quais letras so vogais e quais so as
constantes. Usar uma funo que verifica se uma vogal.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int verificavogal (char M)
{
if(M=='a' || M=='A' || M=='e' || M=='E'
|| M=='i' || M=='I' || M=='o' || M=='O' || M=='u' || M=='U')
return(1);
else
return(0);
}

main()
{
char nome1[30], nome2[30] ;
int x,t, t2, cv=1, cc=1;
printf("\nDigite um nome: ");
gets(nome1);
t=strlen(nome1);
printf("\nDigite um nome: ");
gets(nome2);
t2=strlen(nome2);
for(x=0;x<=t-1;x++)
if(verificavogal(nome1[x])==1 )
printf("\nA letra [ %c] eh uma VOGAL: ",nome1[x]);

63
63
else
printf("\nA letra [ %c] eh uma CONSTANTE: ",nome1[x]);
printf("\n\n");
for(x=0;x<=t-1;x++)
if(verificavogal(nome2[x])==1 )
printf("\nA letra [ %c] eh uma VOGAL: ",nome2[x]);
else
printf("\nA letra [ %c] eh uma CONSTANTE: ",nome2[x]);
printf("\n\n");
for(x=1;x<=t-1;x++)
{
if(verificavogal(nome1[x])==1 )
cv++;
else
cc++;
}
printf("\n\n");
system("pause");
return(0);
}


64
64
MATRIZ

01)Ler um vetor vet de 10 elementos e obter um vetor quadrado cujos componentes deste
vetor so
o quadrado dos respectivos componentes de vet.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int x,y,tam;
float vet[10], quad[10];
for (x=0; x<=9; x++)
{
printf("Digite o numero %d: ",x+1);
scanf("%f", &vet[x]);
quad[x] = pow(vet[x],2);
}
printf("\n\nVetor VET: ");
for (x=0; x<=9;x++)
printf("%4.0f",vet[x]);
printf("\n\n");
printf("Vetor QUAD: ");

for (x=0; x<=9;x++)
printf("%4.0f",quad[x]);
printf("\n\n");
system("pause");
return 0;
}
02) Criar um algoritmo que leia os elementos de uma matriz inteira de 4 x 4 e imprimir os
elementos da diagonal principal.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int lin,col, tab;
int mat[4][4];
for (lin=0; lin<=3; lin++)
{
for (col=0; col<=3;col++)
{
printf("Digite ELEMENTO da linha %d, coluna %d da matriz: ",lin+1,col+1);
// aqui no scanf preenchemos a matriz
scanf("%d", &mat[lin][col]);
}
}
//Imprimindo a matriz
printf("Matriz\n");
for (lin=0;lin<=3;lin++)
{
for (col=0;col<=3;col++)
printf("%d\t",mat[lin][col]);
printf("\n\n");

65
65
}
// Imprimindo a diagonal principal
printf("\n\nDiagonal principal\n\n");
for (lin=0; lin<=3;lin++)
{
printf("%d\n",mat[lin][lin]);
for (tab=1;tab<=lin+1;tab++)
printf("\t");
}
printf("\n\n");
system("pause");
return 0;
}
3)Criar um algoritmo que leia os elementos de uma matriz inteira de 3 x 3 e imprimir todos os
elementos, exceto os elementos da diagonal principal.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int lin,col, tab;
int mat[3][3];
for (lin=0; lin<3; lin++)
{
for (col=0; col<3;col++)
{
printf("Digite ELEMENTO da linha %d, coluna %d da matriz: ",lin+1,col+1);
// aqui no scanf preenchemos a matriz
scanf("%d", &mat[lin][col]);
}
}
//Imprimindo a matriz
printf("Matriz\n");
for (lin=0;lin<=2;lin++)
{
for (col=0;col<3;col++)
printf("%d\t",mat[lin][col]);
printf("\n\n");
}
// Imprimindo a matriz menos diagonal principal
printf("\n\nMatriz menos a diagonal principal\n\n");
for (lin=0; lin<3;lin++)
{
for (col=0;col<3;col++)
{
if (lin != col)
printf("%d",mat[lin][col]);
printf("\t");
}
printf("\n");
}

printf("\n\n");
system("pause");
return 0;
}




66
66
10)Criar um algoritmo que leia os elementos de uma matriz inteira de 3 x 3 e imprimir outra
matriz multiplicando cada elemento da primeira matriz por 2.
Exemplo:
1 2 3 2 4 6
4 5 6 8 10 12
4 1 7 8 2 14

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
main()
{
int lin,col, tab;
int mat[3][3], mat1[3][3];
for (lin=0; lin<3; lin++)
{
for (col=0; col<3;col++)
{
printf("Digite ELEMENTO da linha %d, coluna %d da matriz: ",lin+1,col+1);
// aqui no scanf preenchemos a matriz
scanf("%d", &mat[lin][col]);
}
}
//Imprimindo a matriz original
printf("Matriz original\n");
for (lin=0;lin<=2;lin++)
{
for (col=0;col<3;col++)
printf("%d\t",mat[lin][col]);
printf("\n\n");
}
// Preenche outra matriz (mat1) com os elementos multiplicados por 2

for (lin=0;lin<=2;lin++)
for (col=0;col<3;col++)
mat1[lin][col] = (mat[lin][col])*2;

// imprime a matriz mat1
printf("\n\nMatriz com elementos multiplicados por 2\n\n");
for (lin=0;lin<=2;lin++)
{
for (col=0;col<3;col++)
printf("%d\t",mat1[lin][col]);
printf("\n\n");
}
printf("\n\n");
system("pause");
return 0;
}


Matrizes e Vetores

Declarao de
Matrizes e Vetores
Acesso aos
elementos
Exemplos com
Vetores
Passagem de
Matrizes e Vetores
como Parmetro
Exemplos com
Matrizes

Introduo
Uma matriz uma coleo de variveis de mesmo tipo, acessveis
com um nico nome e armazenados contiguamente na memria.
A individualizao de cada varivel de um vetor feita atravs do uso
de ndices.
Os Vetores so matrizes de 1 s dimenso.

Declarao de Matrizes
int Vetor[5]; // declara um vetor de 5
posies
int Matriz[5][3]; // declara uma matriz de 5
linhas e 3 colunas

Acesso aos elementos do vetor
Para acessar os elementos de um vetor usa-se ndices. O ndice define
a posio da varivel dentro do vetor.
Em todos os vetores tem o primeiro elemento na posio 0(zero).
Assim, se tomarmos "K" como sendo o tamanho do vetor a ltima posio a
de ndice "K-1"
Vetor[0] = 4; // Coloca 4
na primeira posio de "Vetor"
Vetor[4] = 8; // Coloca 8 na ltima posio
de "Vetor"

Exemplos com Vetores
int Vetor[5]; // declara um vetor de 5 posies
int Matriz[5][3]; // declara uma matriz de 5
linhas e 3 colunas
Vetor[0] = 9; // coloca 9 na primeira
posio do vetor
Vetor[4] = 30 // coloca 30 na ltima posio
do vetor

Matriz[0][1] = 15; // coloca 15 na clula
que est na primeira linha
// e na segunda coluna da
matriz
Preenchimento de um vetor com um dado
for(i=0; i<5; i++) for(i=0;
i<=4; i++)
Vetor[i] = 30; Vetor[i]
= 30;
Colocar os nmeros de 1 a 5 em Vetor
for(i=0; i<5; i++)
Vetor[i] = i+1;
Colocar os nmeros de 5 a 1 em Vetor
for(i=0; i<5; i++)
Vetor[i] = 5-i;
Uso de Constantes para definir o tamanho de um vetor
#define TAM_MAX 10
double VetReais[TAM_MAX];
for(i=0; i<TAM_MAX; i++)
VetReais[i] = TAM_MAX - i; // coloca
5,4,3,2,1 no vetor
Copiar os dados de um vetor para outro
#define TAM_MAX 10
double VetReais[TAM_MAX], Copia[TAM_MAX];
for(i=0; i<TAM_MAX; i++)
VetCopia[i] = VetReais[i]; // Copia os dados
de um vetor
// para outro
Copiar os dados de um VET1 para as primeiras 5 posies de COPIA e
VET2 para as outras 5
#define TAM_MAX 10
// Note que a declarao do vetor "Cpia" cria o
dobro de posies
double Vet1[TAM_MAX], Vet2[TAM_MAX],
Copia[TAM_MAX*2];
for(i=0; i<TAM_MAX; i++)
VetCopia[i] = Vet1[i]; // Copia os dados do
primeiro vetor

for(i=0; i<TAM_MAX; i++) // Copia os dados do
segundo vetor
VetCopia[i+TAM_MAX] = Vet2[i];

// ****** Pergunta: Como fazer a cpia usando um
nico comando for ?
Leitura dos dados de um um vetor
#define TAM_MAX 10
double Vet1[TAM_MAX];
for(i=0; i<TAM_MAX; i++)
scanf("%f",&Vet1[i]);
Encontrar o maior valor dentro de um vetor
#define TAM_MAX 10
double Vet1[TAM_MAX];
double Maior;
for(i=0; i<TAM_MAX; i++)
scanf("%f",&Vet1[i]);// le os dados

Maior = Vet1[0]; // assume que o primeiro o
maior
for(i=0; i<TAM_MAX; i++)
if Vet1[i] > Maior
Maior = Vet1[i];
printf("O maior elemento %f\n",Maior);
// ****** Pergunta: Como fazer a mesma busca e
imprimir tambm a
// ****** posio do dado dentro do vetor. Tente
fazer isto usando
// ****** apenas 1 varivel.
Crie um programa que copie para um vetor os elementos de outro em
ordem crescente.
// a idia aqui encontrar o menor elemento do vetor 1 e colocar no vetor 2.
Tirar este nmero de vet1, por exemplo,
// colocando no seu lugar, no vetor 1, um nmero grande e recomear a busca
pelo novo nmero menor.
#define TAM_MAX 10
double Vet1[TAM_MAX], VetOrdenado[TAM_MAX];
double Menor, Maior;
for(i=0; i<TAM_MAX; i++)
scanf("%f",&Vet1[i]);// le os dados
PosMaior = 0; // assume que o maior est na 1a.
posio
for(i=0; i<TAM_MAX; i++)
if Vet1[i] > Vet1[PosMaior]
PosMaior = i; // acha a posio do maior
for(j=0; j<TAM_MAX;j++)
{
PosMenor = 0; // assume que o primeiro o
menor
for(i=0; i<TAM_MAX; i++)
if Vet1[i] < Vet1[PosMenor]
PosDoMenor = i;
VetOrdenado[j]= Vet1[PosMenor]; // copia menor
para o novo vetor
// inutiliza a posio do menor colocando nela um
nmero grande
Vet1[PosMenor] = Vet1[PosMaior]; // no caso o
maior do vetor

}
for(i=0; i<TAM_MAX; i++)
print("%f\n",VetOrdenado[i]);// Imprime
os dados

Passagem de Matrizes e Vetores como Parmetro
Para passar uma matriz ou vetor como parmetro, basta declarar o
parmetro da mesma forma que a matriz foi declarada.
Um vetor sempre passado por referncia, logo, qualquer alterao em
seus elementos altera a varivel usada como parmetro na chamada da rotina.
#define TAM_MAX 10
void ImprimeVet (int Tam, int Vet[TAM_MAX])
{
int i;
for (i=0; i< Tam; i++)
{
printf("%d", Vet[i]);
}
}

void main()
{
int Notas[TAM_MAX];
ImprimeVet(TAM_MAX, Notas); // Passa o vetor
'Notas' como
// parmetro
}
A passagem dos elementos de um vetor como parmetro idntica
passagem de uma varivel. Ou seja, quando a passagem for por valor usa-
se vet[i] e quando for por referncia usa-se &vet[i].
void Imprime (int N) // funo com um parmetro
por valor
{
printf("%d", N);
}
void Incr (int *N) // funo com um parmetro por
referncia
{
*N = *N + 1;
}
void Incr (int *N)
{
int i;
for (i=0; i< Tam; i++)
{
Incr(&Vet[i]); // Note que preciso colocar o
'&' antes
// de Vet[i] pois a funo
'Incr' espera um
// parmetro por
REFERNCIA
Imprime(Vet[i]); // Note que NO se deve colocar
nada antes
// de Vet[i] pois a
funo 'Imprime' espera um
// parmetro por VALOR
}
}


Exemplos com Matrizes

#define NLIN 10
#define NCOL 10
int Matriz[NLIN][NCOL];
Preencher uma matriz com um dado
for(i=0; i < NLIN; i++)
for(j=0; j < NCOL; j++)
Matriz[i][j] = 30;
Somar um nmero a uma linha/coluna de uma matriz
void SomaValorNaColuna(int Valor, int
Matriz[NLIN][NCOL], int Coluna)
{
for(i=0; i < NLIN; i++) // para cada linha de
'Coluna'
Matriz[i][Coluna] = Matriz[i][Coluna] + 30;
}
Criar uma matriz identidade
void CriaIdent(int Colunas, int linhas, int
Matriz[NLIN][NCOL])
{

}
Criar uma matriz transposta
void CriaTransp(int Colunas, int linhas,
int Matriz[NLIN][NCOL], int
Trasposta[NLIN][NCOL])
{

}
Cria uma rotina que some duas matrizes
void SomaMatrizes(int Colunas, int linhas,
int MatrizA[NLIN][NCOL], int
MatrizB[NLIN][NCOL],
int MatrizSOMA[NLIN][NCOL])
{

}
Cria uma rotina que multiplique duas matrizes
void MultMatrizes(int Colunas, int linhas,
int MatrizA[NLIN][NCOL], int
MatrizB[NLIN][NCOL],
int MatrizMULT[NLIN][NCOL])
{
}