Introdução
Neste laboratório, aprenderemos como escrever um programa em C que encontra o maior número entre um conjunto de números fornecidos pelo usuário. Este é um exercício de programação fundamental que ensina vários conceitos importantes:
- Receber entrada do usuário
- Trabalhar com loops
- Fazer comparações
- Rastrear o valor máximo através de iterações
O algoritmo que implementaremos é simples: pediremos ao usuário quantos números ele deseja inserir e, em seguida, iteraremos por cada número de entrada. À medida que processamos cada número, o compararemos com o maior número atual que encontramos até agora, atualizando nossa variável "maior" quando necessário.
Ao final deste laboratório, você terá criado um programa que pode lidar com qualquer número de entradas e identificar de forma confiável o maior valor entre elas.
Criando nosso Arquivo de Programa
Vamos começar criando um novo arquivo C para nosso programa. No WebIDE, criaremos um arquivo chamado main.c no diretório do projeto.
Navegue até o diretório do projeto no painel do terminal:
cd ~/projectAgora, no WebIDE, clique no botão "Novo Arquivo" no painel Explorer do lado esquerdo, ou clique com o botão direito no painel Explorer e selecione "Novo Arquivo".
Nomeie o arquivo
main.ce pressione Enter.Vamos começar adicionando a estrutura básica do nosso programa C ao arquivo recém-criado:
#include <stdio.h> int main() { // We will add our code here return 0; }Salve o arquivo pressionando Ctrl+S ou selecionando Arquivo > Salvar no menu.
Esta estrutura inclui:
- A diretiva
#include <stdio.h>que traz a biblioteca Standard Input/Output, que precisamos para funções comoprintf()escanf() - A função
main(), que é o ponto de entrada de qualquer programa C - Uma declaração
return 0;que indica a execução bem-sucedida do nosso programa
O arquivo de cabeçalho stdio.h fornece funções para operações de entrada e saída. A função main() é onde a execução do nosso programa começa, e return 0; sinaliza ao sistema operacional que nosso programa foi encerrado sem erros.
Manipulando a Entrada do Usuário
Em seguida, precisamos configurar nosso programa para interagir com o usuário. Precisaremos:
- Declarar variáveis para armazenar nossos dados
- Solicitar ao usuário o número de elementos
- Configurar o processo para receber o primeiro número
Vamos atualizar nosso código em main.c:
#include <stdio.h>
int main() {
// Declare variables
int n; // To store the number of elements
float big; // To store the largest number found
// Prompt the user for the number of elements
printf("Enter the number of elements you wish to find the greatest element of: ");
scanf("%d", &n);
// Check if the input is valid
if (n <= 0) {
printf("Please enter a positive number of elements.\n");
return 1; // Exit with error code
}
// Prompt for the first number and initialize 'big' with it
printf("Enter %d numbers:\n", n);
printf("Enter element 1: ");
scanf("%f", &big);
return 0;
}
Vamos entender o que adicionamos:
Declaração de Variáveis:
int n: Uma variável inteira para armazenar quantos números o usuário deseja inserirfloat big: Uma variável de ponto flutuante para armazenar o maior número encontrado
Entrada do Usuário para Contagem:
- Usamos
printf()para exibir uma solicitação pedindo o número de elementos - Usamos
scanf("%d", &n)para ler um inteiro do usuário e armazená-lo emn - O
&antes dené o operador "endereço de", que diz aoscanf()onde armazenar o valor de entrada
- Usamos
Validação da Entrada:
- Verificamos se o usuário inseriu um número positivo
- Caso contrário, exibimos uma mensagem de erro e saímos do programa com o código de retorno 1 (indicando erro)
Entrada do Primeiro Número:
- Solicitamos ao usuário que insira o primeiro número
- Armazenamos este primeiro número em
bigpois, neste ponto, é o único (e, portanto, o maior) número que temos
Quando você executar este código, ele pedirá o número de elementos e, em seguida, o primeiro elemento, mas ainda não fará nada com essa informação. Na próxima etapa, adicionaremos a lógica para processar todos os números e encontrar o maior.
Encontrando o Maior Número
Agora, implementaremos a lógica principal do nosso programa - encontrar o maior número entre as entradas. Usaremos um loop for para:
- Iterar pelos números restantes (do 2º ao n-ésimo)
- Comparar cada número com nosso valor atual maior
- Atualizar o valor maior se encontrarmos um número maior
Atualize seu arquivo main.c com o seguinte código:
#include <stdio.h>
int main() {
// Declare variables
int n; // To store the number of elements
float big; // To store the largest number found
// Prompt the user for the number of elements
printf("Enter the number of elements you wish to find the greatest element of: ");
scanf("%d", &n);
// Check if the input is valid
if (n <= 0) {
printf("Please enter a positive number of elements.\n");
return 1; // Exit with error code
}
// Prompt for the first number and initialize 'big' with it
printf("Enter %d numbers:\n", n);
printf("Enter element 1: ");
scanf("%f", &big);
// Process remaining numbers using a loop
for (int i = 2; i <= n; i++) {
float current; // Variable to store the current number
// Prompt for the current number
printf("Enter element %d: ", i);
scanf("%f", ¤t);
// Compare with the current largest
if (current > big) {
big = current; // Update 'big' if current number is larger
}
}
// Display the result
printf("The largest of the %d numbers is %.2f\n", n, big);
return 0;
}
Vamos entender o novo código que adicionamos:
Loop For:
- Começamos de
i = 2porque já processamos o primeiro elemento - Continuamos até processarmos
nelementos - Para cada iteração, incrementamos
iem 1
- Começamos de
Processar Cada Número:
- Declaramos uma nova variável
currentpara armazenar cada número de entrada - Solicitamos ao usuário que insira o elemento atual
- Lemos a entrada usando
scanf()
- Declaramos uma nova variável
Encontrando o Máximo:
- Comparamos a entrada atual
currentcom nosso maior valor atualbig - Se
currentfor maior, atualizamosbigpara armazenar este novo valor maior - Caso contrário, deixamos
biginalterado e passamos para a próxima entrada
- Comparamos a entrada atual
Exibir Resultado:
- Após processar todas as entradas, exibimos o maior número encontrado
- O especificador de formato
%.2fexibe o número de ponto flutuante com 2 casas decimais
Esta implementação segue um padrão comum para encontrar o valor máximo em uma sequência:
- Inicialize o máximo com o primeiro valor
- Itere pelos valores restantes
- Atualize o máximo sempre que encontrarmos um valor maior
- No final, a variável contém o maior valor da sequência
Compilação e Teste do Programa
Agora que escrevemos nosso programa C completo, precisamos compilá-lo e executá-lo para ver se ele funciona corretamente.
Para compilar o programa, execute o seguinte comando no terminal:
gcc ~/project/main.c -o ~/project/mainEste comando invoca o GNU C Compiler (gcc) para compilar nosso arquivo fonte
main.ce criar um arquivo executável chamadomain. A flag-oespecifica o nome do arquivo de saída.Se não houver erros em seu código, o comando será executado sem nenhuma saída. Isso significa que seu programa foi compilado com sucesso.
Se você vir alguma mensagem de erro, leia-as cuidadosamente para entender o que deu errado. Erros comuns incluem:
- Ponto e vírgula ausentes (
;) - Chaves incompatíveis (
{e}) - Nomes ou tipos de variáveis incorretos
- Instruções de inclusão ausentes ou incorretas
- Ponto e vírgula ausentes (
Depois de compilar o programa com sucesso, execute-o usando:
~/project/mainTeste seu programa com diferentes entradas. Aqui está um exemplo de caso de teste:
Entrada:
Enter the number of elements you wish to find the greatest element of: 5 Enter 5 numbers: Enter element 1: 12.5 Enter element 2: 9.7 Enter element 3: 25.8 Enter element 4: 15.2 Enter element 5: 4.9Saída esperada:
The largest of the 5 numbers is 25.80Tente outro caso de teste com números negativos:
Entrada:
Enter the number of elements you wish to find the greatest element of: 3 Enter 3 numbers: Enter element 1: -10.5 Enter element 2: -2.3 Enter element 3: -15.7Saída esperada:
The largest of the 3 numbers is -2.30Teste também com um único número:
Entrada:
Enter the number of elements you wish to find the greatest element of: 1 Enter 1 numbers: Enter element 1: 42.0Saída esperada:
The largest of the 1 numbers is 42.00
Se o seu programa produzir as saídas esperadas para esses casos de teste, parabéns! Você implementou com sucesso um programa para encontrar o maior número entre N números de entrada.
Este processo de compilação e teste é uma parte essencial do desenvolvimento de software. Ele permite que você verifique se seu código funciona conforme o esperado e ajuda a identificar e corrigir quaisquer bugs ou problemas.
Resumo
Neste laboratório, implementamos com sucesso um programa C que encontra o maior número entre um conjunto de números fornecidos pelo usuário. Vamos revisar o que realizamos:
Compreensão do Problema: Identificamos a necessidade de processar uma coleção de números e determinar qual deles é o maior.
Estrutura do Programa: Criamos um programa C bem estruturado com as inclusões adequadas, declarações de variáveis e um fluxo lógico.
Manipulação da Entrada do Usuário: Implementamos código para obter entrada dos usuários, incluindo validação para garantir dados adequados.
Implementação do Algoritmo: Usamos um algoritmo simples, mas eficaz, para encontrar o valor máximo:
- Inicializar com o primeiro valor
- Comparar cada valor subsequente com o máximo atual
- Atualizar o máximo quando um valor maior é encontrado
Teste e Execução: Compilamos nosso programa e o testamos com várias entradas para verificar se ele funciona corretamente.
Este laboratório demonstra conceitos fundamentais de programação que são valiosos em muitos contextos:
- Execução sequencial
- Declarações condicionais
- Estruturas de loop
- Rastreamento de variáveis
- Operações de entrada/saída
O Código Completo
Aqui está o código completo que desenvolvemos neste laboratório:
#include <stdio.h>
int main() {
// Declare variables
int n; // To store the number of elements
float big; // To store the largest number found
// Prompt the user for the number of elements
printf("Enter the number of elements you wish to find the greatest element of: ");
scanf("%d", &n);
// Check if the input is valid
if (n <= 0) {
printf("Please enter a positive number of elements.\n");
return 1; // Exit with error code
}
// Prompt for the first number and initialize 'big' with it
printf("Enter %d numbers:\n", n);
printf("Enter element 1: ");
scanf("%f", &big);
// Process remaining numbers using a loop
for (int i = 2; i <= n; i++) {
float current; // Variable to store the current number
// Prompt for the current number
printf("Enter element %d: ", i);
scanf("%f", ¤t);
// Compare with the current largest
if (current > big) {
big = current; // Update 'big' if current number is larger
}
}
// Display the result
printf("The largest of the %d numbers is %.2f\n", n, big);
return 0;
}
Você pode estender este programa de várias maneiras:
- Encontrar tanto o maior quanto o menor número
- Calcular a média de todos os números
- Ordenar os números em ordem crescente ou decrescente
- Lidar com estruturas de dados mais complexas, como arrays
Esperamos que este laboratório tenha ajudado você a entender os fundamentos da programação em C e do pensamento algorítmico. Esses conceitos formam a base para tópicos de programação mais avançados e técnicas de resolução de problemas.



