Exemplos em Linguagem C
Exemplo 1
Calcular a média das duas notas de um aluno. A primeira nota é igual a 5.5 e a segunda nota é igual a 8.5. Informe ainda se ele está aprovado ou de prova final, baseado na média de aprovação igual a 7.0.
/* Primeiro exemplo Calcula média de duas notas e verifica aprovação */ #include <stdio.h> #include <stdlib.h> int main() { float nota1, nota2, media; nota1 = 5.5; nota2 = 8.5; media = (nota1 + nota2)/2; printf("Media = %f", media); if(media >= 7.0) printf(" - Aprovado"); else // se a média é menor ou igual a 7.0 printf(" - Prova final"); printf("\n\n"); // salta 2 linhas em branco system("pause"); // não permite que a janela do prompt feche return 0; }
Exemplo 2
A partir da idade informada de um cidadão, diga se ele não pode votar (idade inferior a 16), ou se o voto é facultativo (idade igual a 16 ou 17 ou ainda maior do que 70), ou ainda se o voto é obrigatório para idades entre 18 e 70 (incluindo estes valores)
#include <stdio.h> #include <stdlib.h> int main() { int idade; printf("Qual a sua idade? "); scanf("%d", &idade); if(idade >= 18 && idade <=70) printf("Voce deve votar!"); else if(idade <= 15) printf("Nao pode votar"); else printf("Voto facultativo"); printf("\n\n"); system("pause"); return 0; }
Exemplo 3
Verifique a validade de uma data de aniversário (solicite apenas o número do dia e do mês).
Dica: meses com 30 dias: abril, junho, setembro e novembro.
#include <stdio.h> #include <stdlib.h> int main() { int dia, mes; printf("Entre com o dia: "); scanf("%d", &dia); printf("Entre com o mes: "); scanf("%d", &mes); if(mes<1 || mes>12 || dia<1 || dia>31) printf("data invalida!"); else if(mes==2 && dia>28) printf("data invalida!"); else if((mes==4 || mes==6 || mes==9 || mes==11) && dia>30) printf("data invalida!"); else printf("data valida"); printf("\n\n\n"); system("pause"); return 0; }
Exemplo 4
Descubra o maior entre 3 números fornecidos pelo usuário
#include <stdio.h> #include <stdlib.h> int main() { float n1, n2, n3; printf("Entre com tres numeros: "); scanf("%f", &n1); scanf("%f", &n2); scanf("%f", &n3); if(n1 > n2 && n1 > n3) printf("\nMaior numero: %f", n1); else if(n2 > n3 && n2 > n1) printf("\nMaior numero: %f", n2); else if(n3 > n1 && n3 > n2) printf("\nMaior numero: %f", n3); else printf("\nExiste mais de um numero maior!"); printf("\n\n\n"); system("pause"); return 0; }
Exemplo 5
Exibe 10 vezes o termo “Linguagem C” usando os três tipos de estruturas de repetição existentes em C.
#include <stdio.h> #include <stdlib.h> int main() { int i; printf("Exibe 'linguagem C' 10 vezes"); printf("\n\nPrimeira forma, com while:"); i = 0; while(i < 10) { printf("\nLinguagem C"); i = i + 1; } printf("\n\nSegunda forma, com for:"); for(i=0; i < 10; i = i + 1) { printf("\nLinguagem C"); } printf("\n\nTerceira forma, com do-while:"); i = 0; do { i = i + 1; printf("\nLinguagem C"); }while(i < 10); printf("\n\n\n"); system("pause"); return 0; }
Exemplo 6
Exiba a tabuada de um número fornecido pelo usuário. Por exemplo se ele digitar o número 5, então será mostrado:
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
#include <stdio.h> #include <stdlib.h> int main() { int i, numero; printf("Entre com o numero para a tabuada: "); scanf("%d", &numero); printf("\n\nVersao com while: "); i = 1; while(i <= 10) { printf("\n%d x %d = %d", numero, i, i*numero); i = i + 1; // pode ser escrito como i++ } printf("\n\nVersao com for: "); for(i = 1; i <= 10; i++) printf("\n%d x %d = %d", numero, i, i*numero); printf("\n\n\n"); system("pause"); return 0; }
Exemplo 7
// Sorteia 6 números para MEGASENA (não verifica repetição) #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int i, numeroSorteado; // coloca a hora atual como semente para geração de randômicos srand(time(NULL)); for(i=1; i<=6; i++) { // a função rand gera números aleatórios de 0 a 32767 (padrão) numeroSorteado = rand() % 60; printf("Numero %d: %d\n", i, numeroSorteado); } printf("\n\n\n"); system("pause"); return 0; }
Exemplo 8
Diversas ações com vetores.
#include <stdio.h> #include <stdlib.h> // a diretiva define serve para aumentar o nível de alterabilidade do programa #define MAX_NOME 30 int main() { // Declaração do vetor x com capacidade para 10 inteiros e a sua inicialização com 10 valores int x[10] = { 20, 30, 45, 67, 5, 49, 34, 21, 99, 89 }; // Declaração e inicialização do vetor y com 3 inteiros int y[] = { 34, 7, 44 }; // Declaração do vetor z para 3 inteiros int z[3]; // Inicalização dos três elementos do vetor z z[0] = 200; z[1] = 400; z[2] = 500; // Declaração e inicialização do vetor de caracteres s // Vetor de caracteres com terminação de nulo é chamado de STRING char s[] = {'b','i','a','\0'}; // Declaração do vetor de caracteres t com incialização de uma constante // string (caracteres entre aspas duplas) Neste caso o nulo é // colocado automaticamente no final, como 4º caractere char t[] = "bia"; printf("Primeiro elemento do vetor x: %d \n", x[0]); printf("Segundo elemento do vetor y: %d \n", y[1]); printf("Terceiro elemento do vetor s: %c \n", s[2]); printf("Todos os 10 elementos do vetor x: \n"); int i; for(i=0; i < 10; i++) printf("%d ", x[i]); // A exibição de uma string pode ser feita com o formatador %s printf("\nTodos os elementos do vetor s: %s \n", s); printf("Todos os elementos do vetor t: %s \n", t); // Entrada via teclado para uma string sem espaços em branco // Observe que a função scanf fica sem o operador & char apelido[MAX_NOME]; printf("Digite um nome (sem espacos): "); scanf("%s", apelido); printf("Nome digitado: %s \n", apelido); // Entrada via teclado para uma string com espaços em branco // Neste caso usamos a função fflush(stdin) para esvaziar o buffer // de entrada (após uma scanf, o buffer fica sujo com um salto de linha) // A função gets lê todos caracteres até encontrar um salto de linha. char nomeCompleto[MAX_NOME]; printf("Digite um nome (pode conter espacos): "); fflush(stdin); gets(nomeCompleto); printf("Nome digitado: %s", nomeCompleto); printf("\n\n\n"); system("pause"); return 0; }
Exemplo 9
// recebe 10 notas e exibe aquelas maiores que a média #include <stdio.h> #include <stdlib.h> #define MAX_NOTAS 10 int main() { int i; float notas[MAX_NOTAS], soma, media; soma = 0; printf("Digite as notas:\n"); for(int i=0; i<MAX_NOTAS; i++) { scanf("%f", ¬as[i]); soma = soma + notas[i]; } media = soma/MAX_NOTAS; printf("\nMedia: %.1f", media); printf("\nNotas maiores do que a media: "); for(int i=0; i<MAX_NOTAS; i++) if(notas[i] > media) printf("%.1f ", notas[i]); printf("\n\n\n"); system("pause"); }
Exemplo 10
Matriz com 10 linhas e 10 colunas preenchida com números aleatórios de 0 a 50.
#include <stdio.h> #include <stdlib.h> int main() { // declara uma matriz com 10 linhas e 10 colunas, capaz // de armazenar 100 valores int m[10][10]; int linha, coluna, i; srand(time(NULL)); // preenche a matriz com 100 valores sorteados (de 0 a 50) for(linha = 0; linha < 10; linha++) for(coluna = 0; coluna < 10; coluna++) m[linha][coluna] = rand() % 51; // exibe toda a matriz for(linha = 0; linha < 10; linha++) { for(coluna = 0; coluna < 10; coluna++) printf("%2d ", m[linha][coluna]); printf("\n"); } // exibe os valores da linha 5 printf("\n\nValores da linha 5 \n"); for(coluna = 0; coluna < 10; coluna++) printf("%2d ", m[5][coluna]); // exibe os valores da coluna 5 printf("\n\nValores da coluna 5 \n"); for(linha = 0; linha < 10; linha++) printf("%2d ", m[linha][5]); // exibe os valores da diagonal principal printf("\n\nValores da coluna 5 \n"); for(i = 0; i < 10; i++) printf("%2d ", m[i][i]); printf("\n\n"); system("pause"); }