Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Laços |
A cada número n lido, desenhe o histograma referente a este número, ou seja, para cada número n, exiba um linha de n caracteres "#" - Exercícios Resolvidos de CQuantidade de visualizações: 587 vezes |
Pergunta/Tarefa: Escreva um programa C que solicita ao usuário 10 números inteiros positivos maiores que 0. Use um vetor de inteiros para guardar estes números. Percorra o vetor e, para cada número, desenhe o histograma referente a este número, ou seja, para cada número n, exiba um linha de n caracteres "#". Seu código deverá, obrigatoriamente, usar o laço for (talvez laços aninhados). Sua saída deverá ser parecida com: Informe o 1.o: 7 Informe o 2.o: 2 Informe o 3.o: 5 Informe o 4.o: 13 Informe o 5.o: 3 Informe o 6.o: 8 Informe o 7.o: 7 Informe o 8.o: 1 Informe o 9.o: 10 Informe o 10.o: 6 ####### ## ##### ############# ### ######## ####### # ########## ###### Veja a resolução comentada deste exercício usando 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> #define TAM_VETOR 10 int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int valores[TAM_VETOR]; int i, j, n; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar 10 números inteiros e // vamos guardá-los no vetor for(i = 0; i < TAM_VETOR; i++){ printf("Informe o %d.o: ", (i + 1)); scanf("%d", &valores[i]); } // agora vamos exibir o histograma de cada número printf("\n"); for(i = 0; i < TAM_VETOR; i++){ n = valores[i]; if(n > 0){ for(j = 0; j < n; j++){ printf("#"); } printf("\n"); } } 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 alunosQuantidade de visualizações: 2778 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; 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 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 ::: Dicas & Truques ::: Strings e Caracteres |
Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem CQuantidade de visualizações: 10313 vezes |
Muitas vezes precisar verificar se os primeiros n caracteres de duas strings são iguais. Para isso podemos usar a função strncmp() do header string.h. Esta função aceita dois ponteiros para as strings a serem comparadas e um inteiro especificando a quantidade dos primeiros caracteres que serão comparados. O retorno da função será o valor 0 se os n caracteres comparados forem iguais. Veja o código:---------------------------------------------------------------------- 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 <string.h> int main(int argc, char *argv[]){ char palavra1[] = "Java"; char palavra2[] = "JavaScript"; if(strncmp(palavra1, palavra2, 4) == 0) printf("Os primeiros n caracteres sao iguais"); else printf("Os primeiros n caracteres NAO sao iguais"); puts("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Os primeiros n caracteres sao iguais. |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como passar um vetor para uma função CQuantidade de visualizações: 12060 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: ---------------------------------------------------------------------- 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> // 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 |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software 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 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 |