Exercícios resolvidos em linguagem C (Lista D)

Estarei disponibilizando abaixo 30+ exercícios resolvidos utilizando a linguagem C, espero que estes contribua nos seus estudos.

Linguagem C

C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, padronizada pela ISO, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi originalmente escrito em Assembly).

Fonte: Wikipedia

Exercício 1

Faça um algorítimo que receba valores inteiros de uma matriz 5×2 e preencha um vetor inteiro de
tamanho 10. Imprima o vetor preenchido.

/*
*  Autor: Kelvin Santiago
* Criado: 19/07/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int vetor[9], i;

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

scanf("%d",&vetor[i]);
printf("%d\n",vetor[i]);
}
return 0;
}

Exercício 2

Fazer um algoritmo que:
Leia números de matrículas de alunos e armazene-os em um vetor até o vetor ser preenchido por 10 matrículas. Esses números são distintos, ou seja, o vetor não armazenará valores repetidos.

/*
*  Autor: Kelvin Santiago
* Criado: 23/07/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int vetor[10], numero, cont, posicao = 0 ;

while (posicao < 10){

scanf("%d",&numero);

if (posicao == 0){
vetor[posicao] = numero;
printf("%d\n",vetor[posicao]);
posicao++;
}

else{

for(cont = 0; (cont < posicao)&&(vetor[cont]!= numero); cont++);

if (cont >= posicao){
vetor[posicao] = numero;
printf("%d\n",vetor[posicao]);
posicao++;
}
}
}
return 0;
}

Exercício 3

Fazer um algoritmo que:
Preencha um vetor com X números inteiros, em que o último número lido seja 999 (o último  número não fará parte do vetor). E  imprima o vetor na ordem inversa.

/*
 *  Autor: Kelvin Santiago
 * Criado: 23/07/2013
 */

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(void){

	int contador = 0, numero, vetor[contador];

	scanf("%d",&numero);

	while (numero != 999){

		if (contador == 0){
		vetor[contador] = numero;
		contador++;
		}	

			else{
			vetor[contador] = numero;
			contador++;
			}

	scanf("%d",&numero);		
	}

	if (numero == 999){
		contador--;
		}

	while ( contador >= 0 ){

		printf("%d\n",vetor[contador]);
		contador--;
	}
	return 0;
}

Exercício 4

Faça um programa que receba os valores de uma matriz de ordem 3 e imprimia sua diagonal principal de trás para frente.

/*
 *  Autor: Kelvin Santiago
 * Criado: 23/07/2013
 */

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(void){

	int matriz[3][3], linha = 0, coluna = 0;

	for(linha = 0; linha < 3; linha++){

		for (coluna = 0; coluna < 3; coluna++){

			scanf("%d",&matriz[linha][coluna]);
		}

	}

	for (linha = 2; linha >= 0; linha--){

		for(coluna = 2; coluna >=0; coluna--){
			if ( linha == coluna){
					printf("%d\n",matriz[linha][coluna]);
			}
		}
	}	

	return 0;
}

Exercício 5

Fazer um algoritmo que:
Leia um vetor contendo 10 números, que correspondem a matrículas de alunos. Ler 3 matrículas e imprima uma mensagem informando se eles estão ou não presentes no vetor.

/*
 *  Autor: Kelvin Santiago
 * Criado: 23/07/2013
 */

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(void){

	int vetor[10],contagem, verificanumero, contagemverifica = 0, contemcerto = 0;

	for(contagem = 0; contagem < 10; contagem++){

		scanf("%d",&vetor[contagem]);

	}

	while (contagemverifica < 3){

	scanf("%d",&verificanumero);

		for(contagem = 0; contagem < 10; contagem++){

			if (verificanumero == vetor[contagem]){
				printf("A matricula %d esta presente no sistema\n",verificanumero);
				contemcerto++;
			}

		}
			if(contemcerto == 0){
				printf("A matricula %d nao esta presente no sistema\n",verificanumero);
			}

	contagemverifica++;
	contemcerto = 0;
	}

	return 0;
}

Exercício 6

Fazer um algoritmo que:
Preencha 3 vetores, o primeiro com a nota da primeira prova, o segundo com a nota da segunda prova e o terceiro com a média das 2 primeiras notas, e imprima o resultado “APROVADO” para aqueles que obtiverem uma média igual ou acima de 6, e “REPROVADO” para quem obtiverem uma média abaixo de 6.
OBS.: Saia do laço quando a primeira nota for igual a -1.

/*
 *  Autor: Kelvin Santiago
 * Criado: 23/07/2013
 */

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(void){

	int contador = 0;
	float vetor[3],nota = 0 ;

	scanf("%f",&nota);

	while ( nota != -1){

			vetor[contador] = nota;
			contador++;

			if (contador == 2){

				vetor[contador] = (vetor[0] + vetor[1]) / 2;
				printf("%.2f\n",vetor[contador]);

				if(vetor[contador] >= 6){
					printf("APROVADO\n");
				}
					else{
						printf("REPROVADO\n");
					}
						contador = 0;			
			}
			scanf("%f",&nota);

	}
	return 0;
}

Exercício 7

Preencha e imprima um vetor dos 20 primeiros números primos começando com o número 5000.

 
* Autor: Kelvin Santiago
* Criado: 24 / 07 / 2013
* 
*/ 

#include <stdio.h>
#include <math.h>
#include <string.h>

int main(void)
{

int contador_vetor = 0, vetor[20],  numeroprimo = 0, calculo = 0,numero, contador_verificar;

for (numero = 5000; contador_vetor < 20 ; numero++){

for (contador_verificar = 1; contador_verificar <= numero; contador_verificar++ ){

calculo = (numero % contador_verificar);

if (calculo == 0){   
numeroprimo++;
}
} 
if (numeroprimo == 2){
vetor[contador_vetor] = numero;
printf("%d\n",vetor[contador_vetor]);
contador_vetor++;             

}
numeroprimo = 0;
}

return 0;
}

Exercício 8

Fazer um algorítimo que leia os valores de um vetor inteiro de tamanho 10, e imprima o valor da soma dos números ímpares presentes neste vetor.

 
* Autor: Kelvin Santiago
* Criado: 25 / 07 / 2013
* 
*/ 

#include <stdio.h>
#include <math.h>
#include <string.h>

int main(void)
{
int vetor[10], somaimpares = 0, contador;

for(contador = 0; contador < 10; contador++){

scanf("%d",&vetor[contador]);

if (vetor[contador] % 2 != 0){
somaimpares += vetor[contador];
}
}

printf("%d\n",somaimpares);
return 0;
}

103. Fazer um algoritmo que leia os valores de duas matrizes 3×3 e imprima a mutiplicação das duas matrizes.

 
* Autor: Kelvin Santiago
* Criado: 25 / 07 / 2013
* 
*/ 

#include <stdio.h>
#include <math.h>
#include <string.h>

int main(void)
{
int matriz1[3][3], matriz2[3][3], matrizmult[3][3], linha, coluna, i, j, k;

// Fazendo Scan da PRIMEIRA matriz :DD
for(linha = 0; linha < 3; linha++){
for( coluna = 0; coluna < 3; coluna++){
scanf("%d",&matriz1[linha][coluna]);
}
}

// Fazendo Scan da SEGUNDA matriz :DD
for(linha = 0; linha < 3; linha++){
for( coluna = 0; coluna < 3; coluna++){
scanf("%d",&matriz2[linha][coluna]);
}
}

// Zerando matriz da multiplicacao

for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
matrizmult[i][j]= 0;
}
}

// Fazendo Multiplicacao de matrizes :/
for( i = 0; i < 3; i++){  
       for( j = 0; j < 3; j++){   
           for( k = 0; k < 3; k++) {
               matrizmult[i][j] += matriz1[i][k] * matriz2[k][j]; 
}
}
}	

// Imprimindo matriz mult
for(linha = 0; linha < 3; linha++){
for( coluna = 0; coluna < 3; coluna++){
if( coluna == 2){
printf("%d\n",matrizmult[linha][coluna]);
}
else{
printf("%d ",matrizmult[linha][coluna]);
}
}
}
return 0;
}

Exercício 9

Faça um algorítimo que leia um vetor de 5 posições, e preencha um segundo vetor, sendo que cada posição do segundo vetor receberá o valor do primeiro vetor na mesma posição multiplicado pelo maior valor dentro do primeiro vetor.

 

* Autor: Kelvin Santiago
* Criado: 25 / 07 / 2013
* 
*/ 

#include <stdio.h>
#include <math.h>
#include <string.h>

int main(void)
{
int vetor1[5], vetor2[5], contador, maiornumero = 0;

// Lendo valores do primeiro vetor e verificando maior numero :DD
for(contador = 0; contador < 5; contador++){
scanf("%d",&vetor1[contador]);

if (maiornumero == 0){
maiornumero = vetor1[contador];
}
else if( vetor1[contador] > maiornumero){
maiornumero = vetor1[contador];
}
}

// Preenchendo vetor 2 multiplicando vetor 1 pelo maior numero.
for( contador = 0; contador < 5; contador++){
vetor2[contador] = vetor1[contador] * maiornumero;
printf("%d\n",vetor2[contador]);
}

return 0;
}

Exercício 10

Dado dois números inteiros X e Y, preencha um vetor em que é armazenado os primeiro X números múltiplos de Y.

 
* Autor: Kelvin Santiago
* Criado: 25 / 07 / 2013
* 
*/ 

#include <stdio.h>
#include <math.h>
#include <string.h>

int main(void)
{
int vetorA[5] = {0}, vetorB[8] = {0}, contador, contadorb, igualdades = 0;

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

scanf("%d",&vetorA[contador]);
}

for(contador = 0; contador < 8; contador++){

scanf("%d",&vetorB[contador]);
}

for(contador = 0; contador < 5; contador++){
for(contadorb = 0; contadorb < 8; contadorb++){

if (vetorA[contador] == vetorB[contadorb]){

if (igualdades == vetorA[contador]){

}

else{
igualdades = vetorA[contador];
printf("%d\n",vetorA[contador]);
}
}
}
}

return 0;
}

Exercício 11

Dados dois vetores, A (5 elementos) e B (8 elementos), faça um programa que imprima todos os elementos comuns aos dois vetores.

 
* Autor: Kelvin Santiago
* Criado: 25 / 07 / 2013
* 
*/ 

#include <stdio.h>
#include <math.h>
#include <string.h>

int main(void)
{
int vetorA[5] = {0}, vetorB[8] = {0}, contador, contadorb, igualdades = 0;

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

scanf("%d",&vetorA[contador]);
}

for(contador = 0; contador < 8; contador++){

scanf("%d",&vetorB[contador]);
}

for(contador = 0; contador < 5; contador++){
for(contadorb = 0; contadorb < 8; contadorb++){

if (vetorA[contador] == vetorB[contadorb]){

if (igualdades == vetorA[contador]){

}

else{
igualdades = vetorA[contador];
printf("%d\n",vetorA[contador]);
}
}
}
}

return 0;
}

Exercício 12

Fazer um algorítimo que seja lido um número inteiro X e preencha um vetor com os divisores de X, começando do X até o número 1. Imprimir o vetor em ordem inversa (de trás para frente).

 
* Autor: Kelvin Santiago
* Criado: 25 / 07 / 2013
* 
*/ 

#include <stdio.h>
#include <math.h>
#include <string.h>

int main(void)
{
int numero, divisores, numerodivisores = 0, vetor[numerodivisores], contador = 0;

scanf("%d",&numero);
for (divisores = 1; divisores <= numero; divisores++){

if (numero % divisores == 0){
vetor[contador] = divisores;
contador++;
numerodivisores++;
}
}

for(contador =0; contador < numerodivisores; contador++){
printf("%d\n",vetor[contador]);
}

return 0;
}

Exercício 13

Fazer um algoritmo que seja lido uma palavra e imprima a quantidade de letras que compões a palavra.

#include<stdio.h>
#include<string.h>

int main()
{
   char palavra[50];
   int i;

   scanf("%s",palavra);

   for(i = 0; i <= palavra[i]; i++){}

   printf("%d\n",i);
return 0;
}

Exercício 14

Fazer um algorítimo que seja lido uma palavra e imprima a quantidade de vogais que compõe a palavra.

* Autor: Kelvin Santiago
* Criado: 25 / 07 / 2013
* 
*/ 

#include <stdio.h>
#include <math.h>
#include <string.h>

int main(void)
{
char palavra[20];
int contador, numVogais = 0;

scanf("%s",palavra);

for(contador=0; contador < palavra[contador]; contador++){

if (palavra[contador]== 'A' || palavra[contador]== 'E'  || palavra[contador]== 'I' || palavra[contador]== 'O' || palavra[contador]== 'U'){
numVogais++;
}
}

printf("%d\n",numVogais);

return 0;
}

Caso tenha alguma dúvida sobre a linguagem C ou queira deixar algum feedback deixe nos comentários abaixo.