Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

Como desenhar uma pirâmide de números em C com números repetindo nas linhas - Desafio de Programação Resolvido em C

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

Escreva um programa C que usa laços for aninhados para desenhar a pirâmide de números representada abaixo. Note que este padrão usa o número da linha repetido em cada uma as linhas. No site você encontrará padrões diferenciados deste exercício.

Informe a quantidade de linhas da pirâmide: 6

      1 
     2 2 
    3 3 3 
   4 4 4 4 
  5 5 5 5 5 
 6 6 6 6 6 6
Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  int contador_linhas, quant_linhas, i, j;
	
  // precisamos de um contador de linhas da pirâmida
  contador_linhas = 1;

  // vamos ler a quantidade de linhas da pirâmide
  printf("Informe a quantidade de linhas da pirâmide: ");
  scanf("%d", &quant_linhas); 
    
  // um laço for que começa na quantidade de linhas informada
  // pelo usuário e reduz até 0
  printf("\n");
  for (i = quant_linhas; i > 0; i--){
    // imprimimos i espaços no início de cada linha
    for (j = 1; j <= i; j++){
      printf(" ");
    }
 
    // agora imprimimos o valor do contador de linhas da pirâmide
    // no final de cada linha
    for (j = 1; j <= contador_linhas; j++){
      printf("%d ", contador_linhas);
    }
 
    // pulamos para a próxima linha
    printf("\n");
 
    // e aumentamos o contador de linhas
    contador_linhas++;
  }
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}


Link para compartilhar na Internet ou com seus amigos:

C ::: Desafios e Lista de Exercícios Resolvidos ::: Struct (Estruturas, Registros)

Exercício Resolvido de C - Programa de cálculo de médias de alunos. Escrever um programa C que cadastre o nome, a matrícula e duas notas de vários alunos

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

Programa de cálculo de médias de alunos. Escrever um programa C que cadastre o nome, a matrícula e duas notas de vários alunos. Em seguida imprima a matrícula, o nome e a média de cada um deles.

Seu código deverá, obrigatoriamente, usar a estrutura abaixo para a representação de cada aluno:

// estrutura Aluno
typedef struct{
  int matricula;
  char nome[100];
  float nota1;
  float nota2;
} Aluno;
Sua saída deverá ser parecida com:

LEITURA DOS ALUNOS:

Matrícula do Aluno 1: 123
Nome do Aluno 1: OSMAR J SILVA
Nota 1 do Aluno 1: 8,5
Nota 2 do Aluno 1: 9,3
Matrícula do Aluno 2: 432
Nome do Aluno 2: FABIANA CASTRO
Nota 1 do Aluno 2: 9
Nota 2 do Aluno 2: 8,2

DADOS DOS ALUNOS:

DADOS DO ALUNO 1: 
Matrícula: 123
Nome: OSMAR J SILVA
Nota 1: 8,50
Nota 2: 9,30
Média: 8,90

DADOS DO ALUNO 2:
Matrícula: 432
Nome: FABIANA CASTRO
Nota 1: 9,00
Nota 2: 8,20
Média: 8,60
Resposta/Solução:

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

Código para alunos.c:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// estrutura Aluno
typedef struct{
  int matricula;
  char nome[100];
  float nota1;
  float nota2;
} Aluno;

// define a quantidade de alunos que serão lidos
#define QUANT_ALUNOS 2

int main(int argc, char *argv[]) {
  int i; // controle do laço
  Aluno alunos[QUANT_ALUNOS]; // vetor de alunos
	
  setlocale(LC_ALL,""); // para acentos do português
	
  printf("LEITURA DOS ALUNOS:\n\n");
	
  for(i = 0; i < QUANT_ALUNOS; i++){
    // vamos ler a matrícula do aluno
    printf("Matrícula do Aluno %d: ", (i + 1));
    scanf("%d", &alunos[i].matricula);
    fflush(stdin); // para o scanf não sair pulando o gets
    // agora o nome do aluno
    printf("Nome do Aluno %d: ", (i + 1));
    gets(alunos[i].nome);
    // vamos ler a primeira nota
    printf("Nota 1 do Aluno %d: ", (i + 1));
    scanf("%f", &alunos[i].nota1);
    // vamos ler a segunda nota
    printf("Nota 2 do Aluno %d: ", (i + 1));
    scanf("%f", &alunos[i].nota2);
  }

  // agora vamos mostrar os alunos lidos, com suas notas
  // e suas médias aritméticas
  printf("\nDADOS DOS ALUNOS:\n");
	
  for(i = 0; i < QUANT_ALUNOS; i++){
    printf("\nDADOS DO ALUNO %d:\n ", (i + 1));
    printf("Matrícula: %d\n", alunos[i].matricula);
    printf("Nome: %s\n", alunos[i].nome);
    printf("Nota 1: %.2f\n", alunos[i].nota1);
    printf("Nota 2: %0.2f\n", alunos[i].nota2);
    printf("Média: %.2f\n", (alunos[i].nota1 + alunos[i].nota2) / 2);
  }
	
  printf("\n\n");
  system("pause");
  return 0;
}



C ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar o tipo de dados boolean nas linguagens C e C++ - Como usar true (verdadeiro) e false (false) em C/C++

Quantidade de visualizações: 18417 vezes
Em praticamente todas as linguagens de programação nós encontramos expressões condicionais que definem o fluxo de execução. Expressões condicionais são aquelas que, quando avaliadas, resultam em um valor true (verdadeiro) ou false (falso).

Muitas linguagens de programação possuem um tipo booleano que armazena os valores true ou false. Enquanto o C++ possui o tipo bool, o C possui uma forma bem interessante de definir true ou false.

Em C, um valor true é qualquer valor diferente de 0, incluindo numeros negativos. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  int pode = 1; // verdadeiro
  int nao_pode = 0; // falso
 
  if(pode)
    printf("Teste resultou verdadeiro\n\n");
 
  if(!nao_pode)
    printf("Teste resultou verdadeiro\n\n");
 
  system("PAUSE");
  return 0;
}

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

Teste resultou verdadeiro
Teste resultou verdadeiro

Lembre-se então: false em C é o valor zero. Qualquer outro valor é true.

Embora C++ já possua o tipo bool, é possível usar a abordagem do zero para false e qualquer outro valor para true em C++ também. Você verá muito código legado usando este artifício. Quer ver algo interessante agora? Execute o seguinte código C++:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[]){
  bool pode = true;
  bool nao_pode = false;
 
  cout << pode << "\n";
  cout << nao_pode << "\n\n";
 
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Nos compiladores que obedecem o C++ padrão você verá os valores 1 e 0 serem impressos.


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

Como calcular desvio padrão em C - C para Matemática e Estatística

Quantidade de visualizações: 6290 vezes
Em Matemática e Estatística, o Desvio padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média.

Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística:

\[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\]

Onde:

a) __$\sigma__$ é o desvio;
b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i;
c) __$\mu__$ é a média aritmética dos valores do conjunto de dados;
d) N é a quantidade de valores no conjunto.

O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto.

Veja o código C completo que obtém o desvio padrão a partir de um conjunto de dados contendo quatro valores:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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

// função principal do programa
int main(int argc, char *argv[]){
  // conjunto dos dados
  float conjunto[] = {10, 30, 90, 30};
  float soma = 0.0; // soma dos elementos
  float desvio_padrao = 0.0; // desvio padrão
  int tam = 4; // tamanho dos dados
  int i;
  float media;

  // vamos somar todos os elementos
  for(i = 0; i < tam; i++){
    soma = soma + conjunto[i];
  }

  // agora obtemos a média do conjunto de dados    
  media = soma / tam;

  // e finalmente obtemos o desvio padrão
  for(i = 0; i < tam; i++){
    desvio_padrao = desvio_padrao + pow(conjunto[i] - media, 2);
  }
    
  // mostramos o resultado
  printf("Desvio Padrão Populacional: %f\n", sqrt(desvio_padrao / tam));
  printf("Desvio Padrão Amostral: %f", sqrt(desvio_padrao / (tam - 1)));
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

Desvio Padrão Populacional: 30.0
Desvio Padrão Amostral: 34.64101615137755

Veja que, para calcular o Desvio Padrão Populacional, nós dividimos o somatório pela quantidade de elementos no conjunto, enquanto, para calcular o Desvio Padrão Amostral, nós dividimos o somatório pela quantidade de elementos - 1 (cuidado com a divisão por zero no caso de um conjunto com apenas um elemento).


Desafios, Exercícios e Algoritmos Resolvidos de C

Veja mais Dicas e truques de C

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
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á 33 usuários muito felizes estudando em nosso site.