Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Um programa que lê três números inteiros e mostra o maior - Desafio de Programação Resolvido em C

Quantidade de visualizações: 3707 vezes
Pergunta/Tarefa:

Faça um programa C que solicita três números inteiros e mostra o maior deles. Exiba uma mensagem caso os três números não forem diferentes. Sua saída deverá ser parecida com:



Resposta/Solução:

Veja a resolução comentada deste exercício usando C console:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
   
int main(int argc, char *argv[]){
  int num1, num2, num3;
     
  setlocale(LC_ALL,""); // para acentos do português
   
  // vamos solicitar os três números inteiros
  printf("Informe o primeiro número: ");
  scanf("%d", &num1);
  printf("Informe o segundo número: ");
  scanf("%d", &num2);
  printf("Informe o terceiro número: ");
  scanf("%d", &num3);
         
  // o primeiro número é o maior?
  if((num1 > num2) && (num1 > num3)){
    printf("\nO primeiro número é o maior\n");
  }
  // o segundo número é o maior?
  else if((num2 > num1) && (num2 > num3)){
    printf("\nO segundo número é o maior\n");
  }
  // o terceiro número é o maior?
  else if((num3 > num1) && (num3 > num2)){
    printf("\nO terceiro número é o maior\n");
  }
  // os número não são diferentes
  else{
    printf("\nOs três números não são diferentes\n");
  }
     
  printf("\n\n");
  system("pause");
  return 0;
}


Link para compartilhar na Internet ou com seus amigos:

C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o seno de um número ou ângulo em C usando a função sin()

Quantidade de visualizações: 11597 vezes
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula:

Seno=Cateto opostoHipotenusa

Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem C. Esta função, disponível no header math.h, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
   
int main(int argc, char *argv[]){
  printf("Seno de 0 = %f", sin(0));
  printf("\nSeno de 1 = %f", sin(1));
  printf("\nSeno de 2 = %f", sin(2));
    
  printf("\n\n");
  system("PAUSE");
  return 0;
}

Ao executar este código C nós teremos o seguinte resultado:

Seno de 0 = 0.000000
Seno de 1 = 0.841471
Seno de 2 = 0.909297

Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo:




C ::: Dicas & Truques ::: Arquivos e Diretórios

Como contar as linhas de um arquivo usando a função fgetc() da linguagem C

Quantidade de visualizações: 20890 vezes
Em algumas situações precisamos obter a quantidade de linhas em um arquivo em C. Nesta dica eu mostro como isso pode ser feito usando-se a função fgetc(), no header stdio.h. Note que aqui estamos assumindo que o arquivo texto não possui uma quebra de linha após a última linha de texto.

Veja o código comentado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  // nome e local do arquivo que será aberto para
  // obtermos a quantidade de linhas
  FILE *arquivo = fopen("c:\\testes.txt", "r");
  int caractere, existe_linhas = 0;
  int quant_linhas = 0;
   
  while((caractere = fgetc(arquivo)) != EOF){
    existe_linhas = 1; // há conteúdo no arquivo
     
    if(caractere == '\n'){ // é uma quebra de linha?
      // vamos incrementar a quantidade de linhas
      quant_linhas++;            
    }
  }
 
  // se não houver uma quebra de linha na última linha
  // a contagem será sempre um a menos. Assim, é melhor
  // incrementar quant_linhas mais uma vez
  if(existe_linhas)
    quant_linhas++;
 
  // vamos exibir o resultado
  printf("O arquivo possui %d linhas.", quant_linhas);
   
  printf("\n\n");
  system("PAUSE"); 
  return 0;
}



C ::: Dicas & Truques ::: Matemática e Estatística

Como usar a função modf() da linguagem C para separar um valor de ponto flutuante em suas partes inteira e fracionária

Quantidade de visualizações: 9985 vezes
Em algumas situações precisamos obter as partes inteira e fracionária de um valor de ponto flutuante. Para isso podemos usar a função modf(). Veja sua assinatura:

1
2
3
4
5
6
7
8
9
10
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
double modf(double x, double * intpart);

O parâmetro x é o valor de ponto flutuante cujas partes queremos separar e intpart é uma variável do tipo double que receberá a parte inteira do valor. O retorno da função é o valor fracionário.

Vamos ver um exemplo? Veja como podemos quebrar o valor 34,27 em suas partes inteira e fracionária:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  double valor = 34.27;
   
  // vamos separar o valor em suas partes inteira e fracionária
  double inteira = 0.0, fracionaria = 0.0;
  fracionaria = modf(valor, &inteira);
   
  // vamos exibir o resultado
  printf("Parte inteira: %f\n", inteira);
  printf("Parte fracionaria: %f\n", fracionaria);
   
  printf("\n\n");
  system("pause");
  return 0;
}

Ao executarmos este código teremos o seguinte resultado:

Parte inteira: 34.000000
Parte fracionária: 0.270000


C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em C

Quantidade de visualizações: 3083 vezes
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem C.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

c2=a2+b2

Tudo que temos que fazer é mudar a fórmula para:

a2=c2b2

Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem C:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
  
int main(int argc, char *argv[]){
  float c = 36.056; // medida da hipotenusa
  float b = 30; // medida do cateto adjascente
   
  // agora vamos calcular o comprimento da cateto oposto
  float a = sqrt(pow(c, 2) - pow(b, 2));
  
  // e mostramos o resultado
  printf("A medida do cateto oposto é: %f", a);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

Ao executar este código C nós teremos o seguinte resultado:

A medida do cateto oposto é: 20.000877

Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada.


C ::: Dicas & Truques ::: Strings e Caracteres

Como escrever uma função C personalizada que copia os caracteres de uma string para outra string

Quantidade de visualizações: 8556 vezes
Quando precisamos copiar os caracteres de uma string para outra string em C, geralmente usamos a função strcpy(). Para que você entenda como esta função realmente funciona, o código abaixo mostra como escrever uma função personalizada que realiza tal tarefa. Estude-a cuidadosamente. É uma boa forma de entender como percorrer os caracteres de uma string usando ponteiros:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
// função personalizada que copia os caracteres de
// uma string para outra
char *str_copy(char *destino, const char *origem){
   while(*destino++ = *origem++){
     ;;
   }
 
   return (destino - 1);
}
 
int main(int argc, char *argv[]){
  char frase1[] = "Gosto de PHP";
  char frase2[50]; // pode receber até 49 caracteres
 
  // copia a primeira frase para a segunda
  str_copy(frase2, frase1);
 
  // exibe o resultado
  printf(frase2);
 
  puts("\n\n");
  system("PAUSE");
  return 0;
}

Ao executar este código C nós teremos o seguinte resultado:

Gosto de PHP


C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como passar um vetor para uma função C

Quantidade de visualizações: 12120 vezes
Muitas vezes precisamos passar um vetor, ou seja, um array unidimensional para uma função na linguagem C. O trecho de código abaixo mostra como isso é feito.

Observe que a passagem de um vetor para uma função é feita por referência, ou seja, qualquer alteração nos valores do array dentro da função será refletida no vetor original:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
// protótipo da função que recebe o array e exibe os seus elementos
void exibir_vetor(int vetor[], int tamanho);
 
// função principal do programa
int main(int argc, char *argv[]){
  // cria um vetor com 5 inteiros
  int valores[] = {54, 3, 89, 6, 1};
     
  setlocale(LC_ALL,""); // para acentos do português
   
  // passa o vetor para a função exibir_vetor()
  // veja que temos que enviar também a quantidade
  // de elementos
  exibir_vetor(valores, 5);
   
  printf("\n\n");
  system("PAUSE"); 
  return 0;
}
 
// função que recebe o array e exibe os seus elementos
void exibir_vetor(int vetor[], int tamanho){
  int i;
 
  printf("Os elementos do vetor são:\n\n");
 
  for(i = 0; i < tamanho; i++){
    printf("%d  ", vetor[i]);
  }
}

Ao executar este código C nós teremos o seguinte resultado:

Os elementos do vetor são:

54 3 89 6 1


C ::: Dicas & Truques ::: Strings e Caracteres

Como contar as ocorrências de uma substring em uma string em C usando uma função substring_count() personalizada

Quantidade de visualizações: 10259 vezes
Em algumas situações precisamos obter a quantidade de vezes que uma substring ocorre dentro de uma string. Para isso podemos usar a função personalizada substring_count(). Esta função recebe a string e a substring que desejamos pesquisar e retorna um inteiro contendo a quantidade de vezes que a substring foi encontrada. Veja o código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
// função personalizada que permite contar as
// ocorrências de uma substring em uma string
int substring_count(const char *str, const char *substring){
  int i, j, k, quant = 0;
 
  // vamos percorrer todos os caracteres da string
  for(i = 0; str[i]; i++){
    for(j = i, k = 0; str[j] == substring[k]; j++, k++){
      if(substring[k + 1] == 0) // fim da comparação
        quant++;
    }
  }
 
  return quant;
}
 
int main(int argc, char *argv[]){
  char frase[] = "Gosto muito de Java, JavaScript e Python";
 
  printf("Ocorrencias encontradas: %d",
    substring_count(frase, "Java"));
 
  puts("\n\n");
  system("PAUSE");
  return 0;
}



C ::: Dicas & Truques ::: Matemática e Estatística

Como arredondar um valor de ponto-flutuante para cima usando a função ceil() da linguagem C

Quantidade de visualizações: 14676 vezes
A função ceil() da linguagem C é usada quando precisamos arredondar um valor de ponto-flutuante (com casas decimais) para cima. Esta função retorna o menor valor integral maior que o valor fornecido a ela. Note que, mesmo o retorno sendo um inteiro, ele virá encapsulado em um double.

Para entender o funcionamento desta função, vamos considerar o valor 4.5. Ao aplicarmos a função ceil() a este valor, o retorno será 5.0. Isso pode ser comprovado no trecho de código abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  printf("O valor 4.5 arredondado para cima e %f",
    ceil(4.5));
   
  printf("\n\n");
  system("pause");
  return 0;
}

Ao executarmos este código teremos o seguinte resultado:

O valor 4.5 arredondado para cima é 5.000000.


Desafios, Exercícios e Algoritmos Resolvidos de C

Veja mais Dicas e truques de C

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 27 usuários muito felizes estudando em nosso site.