Estrutura de repetição em c exercícios resolvidos

Estrutura de repetição em c exercícios resolvidos

Bem vindo a aula 92 de nosso curso gratuito de programação com a linguagem C.

Na aula de hoje vamos continuar a resolução da nossa lista de exercícios fazendo um programa com a estrutura de repetição para (for) aninhados.

21) Escreva um programa que gere a saída abaixo (10 linhas, 20 * por linha).Restrições:→ A instrução “printf” pode ser utilizada no máximo 2 vezes;→ O \n para saltar linha pode ser utilizado no máximo 1 vez.************************************************************************************************************************************************************************************

********************

Você está aqui: Página Inicial Disciplinas Algoritmos Lista de Exercícios 3 - Estruturas de Repetição

DoSeTeQuQuSeSa
123456
78910111213
14151617181920
21222324252627
28293031

Elabore um algoritmo que leia uma frase e conte quantas palavras aparecem no texto. Considere que as palavras são separadas apenas por espaços em branco. Solução Utilizando a  linguagem Python, faremos o seguinte: frase= input ( " Digite uma frase: " ) contador= len (frase.split()) print ( "A frase tem " ,contador, "palavras" ) Notas importantes: A função input(entrada) recebe os dados digitados pelo usuário; A função len() retorna a quantidade de elementos de qualquer lista em Python; A função split(),que significa divisão, é utilizada para dividir o conteúdo de uma string. Já que dentro dela não especifiquei o caractere que separa as palavras, o separador será o espaço (valor padrão). Para executar o código de forma online,  Clique aqui Figura 1: script executado 

Lista - Exercícios resolvidos -  Estrutura de Repetição em Linguagem C - For, While e Do - while.

A lista tem a seguinte configuração:

  • 1° ao 6° exercício  - comando for;
  • 7° ao 12° exercício  - comando while;
  • 13° ao 14° exercício  - comando do-while;

1º Exercício resolvido - comando for em linguagem C Escrever um programa para exibir os números de 1 até 50 na tela.

Código-fonte



#include<stdio.h> /*Arquivo de cabeçalho que contém as funções printf() e scanf() */
#include<locale.h> /*Arquivo de cabeçalho que contém a função setlocale que serve para mostrar na tela os caracteres da língua Portuguesa como á, â ,ç,etc. */
int

main()
{

int num;

setlocale(LC_ALL,

"Portuguese");
printf(
"\n\t Imprimir os números de 1 até 50 : \n"); 

for(num=1;num<=50;num++)
     {
      printf(
" %d\n",num);
     }

return

 0;
}

Existe outra maneira de construir esse programa?

Sim, claro! Em Linguagem C, temos um operador que soma 1 ao seu operando que é o operador 

de incremento(++)  . Em outras palavras: num = num+1 é o mesmo que num++ , ou seja, se mudarmos a forma de escrever do incremento no comando for anterior, teríamos o mesmo resultado.

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

int main()
{

int num;
setlocale(LC_ALL,
"Portuguese");
printf(
"\n\t Imprimir os números de 1 até 50 : \n");


  for(num=1;num<=50;num=num+1) 
   {
     printf(
" %d\n",num);
   }

 return 0;
}


2º Exercício resolvido - comando for Fazer um programa para encontrar todos os números pares entre 1 e 100.

Código-fonte



#include<stdio.h>
#include<locale.h> /*Arquivo de cabeçalho que contém a função setlocale que serve para mostrar na tela os caracteres da língua Portuguesa como á, â ,ç,etc. */
int main()
{

 int num;
 setlocale(LC_ALL,
"Portuguese""\n Os números pares entre 1 e 100 são: ");
    
for(num=1;num<100;num++)
      {
        
if(num%2==0)
         {
           printf(
"%d ",num);
          }
      }

return
  1. No programa, a variável num é inicializada com um valor especifico que é o 1(valor inicial da sequência que vai de 1 até 100); 
  2.  A condição de controle ou parada (num<100) diz que o laço será interrompido assim que o num ficar maior que 100, pois num tem que ser menor que 100 por estar entre 1-----e----100;
  3. Sempre que a condição de controle for satisfeita(traduzindo: enquanto num ser menor que 100), é executada uma iteração do bloco de comandos fornecido,ou seja, se num=1, na próxima iteração, num=2(num recebe 2) e na próxima num=3 e assim por diante.

3º Exercício resolvido - comando for Ler um valor inteiro (aceitar somente valores entre 1 e 10) e escrever a tabuada de 1 a 10 do valor lido.

Código-fonte



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

int main()
{
int num,cont,resul;
 setlocale(LC_ALL,"Portuguese");
 printf("\n Informe o número: \n");
 scanf("%d",&num);

if(num>=1 && num<=10)  /*se num >=1 e num<=10*/
  {
     for(cont=1;cont<=10;cont++)
        {
          resul=(num*cont);
          printf("\t %d * %d =%d\n ",num,cont,resul);
        }
   }else

printf(
"\n o número não está entre 1 e 10");

return 0;
}


4º Exercício resolvido - comando for Leia várias idades e calcule a média entre as idades (usar uma variável para idade).

Código-fonte



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

int main()
{

int idades, soma_idades=0, qtde_idades, cont;
float"Portuguese""Quantas idades serão utilizadas? ");
scanf (
"%d", &qtde_idades);
for(cont=1;cont<=qtde_idades;cont++)
   {
     printf(
"Entre com a idade %d : ",cont);
     scanf(
"%d"

, &idades);
     soma_idades = soma_idades + idades;
    }

media = soma_idades/qtde_idades;


printf (

"\n A media de idades é de : %.1f", media);

return

 0;
}

5º Exercício resolvido - comando for 

Ler 10 números e imprimir quantos são pares e quantos são ímpares.

Código-fonte



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

int main()
 {
 
 int par=0, num, i; 
  setlocale(LC_ALL,
"Portuguese"); 
 for (i=1; i<=10; i++) 
    {

      printf("Informe número: "); 
      scanf(
"%d", &num); 
      if (num%2==0)
"\n Quantidade de números Pares: %d\n", par); 
printf(
"Quantidade de números Impares: %d", 10-par); 
printf(
"\n");

return

 0;
}

6º Exercício resolvido - comando for

Utilizando a estrutura de repetição for, faça um programa em C que receba 10 números e conte quantos deles estão no intervalo [10,20] e quantos deles estão fora do intervalo, escrevendo estas informações.

Código-fonte


#include<stdio.h>
 int main()
{

int

 i,num[10],faz_parte,n_faz;

faz_parte =0;

/* Armazena a quantidade de elementos
que fazem parte do intervalo*/

n_faz = 0; 
/* Armazena a quantidade de elementos
que não fazem parte do intervalo*/

printf(
" \n Digite os numeros para verificar \n");
for(i=0;i<10;i++)
   {
     scanf(
"%d",&num[i]); /* coletando os números*/
    } 

  for(i=0;i<10;i++) /*pra verificar os números digitados*/
   {
     
if(num[i]>=10 && num[i]<=20) 
       {
         faz_parte= faz_parte + 1; 
/* se for maior ou igual a 10 e menor ou igual a 20, faz_parte armazena mais um elemento */
        } 
else
          n_faz= n_faz + 1;
    }
printf(
" \n %d numeros fazem parte do intervalo[10,20] \n",faz_parte); 
printf(
" \n %d numeros nao fazem parte do intervalo[10,20]",n_faz);
return 0;
}

7º Exercício resolvido - comando while 



Crie um programa que imprima 11 vezes a frase " Hello World!" utilizando uma estrutura sequencial e uma estrutura de repetição while.

Código-fonte

  • Utilizando a estrutura sequencial, vamos ter que escrever 11 vezes o comando printf()
#include<stdio.h>
int main()

{
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");
printf("\n Hello World! \n");

return 0;
}
  • Com o while , vamos escrever o printf() somente uma vez e utilizar uma variável contadora.

#include <stdio.h>
int main()
{
  int contador = 1;

 
while (contador <= 11) 
      {
       printf("Hello World! \n");
       contador++;
      }
 return 0;
}

Explicação >>> 

  • A condição 'contador<=11' diz ao compilador que vamos executar o código dentro do laço while, desde que a contador seja menor ou igual a 11, ou seja, quando o valor de contador for maior que 11, o laço while será encerrado.
  • Existem três estruturas básicas na linguagem de programação C que são:

- Estrutura sequencial: Onde os comandos em um programa são executados um após o outro,na ordem em que são especificados;
-Estrutura condicional: if e switch;
- Estrutura de repetição: while, for e do-while.

8º Exercício resolvido - comando while 

Escrever um programa para exibir os números de 1 até 50 na tela.

Código-fonte

num=1; /* A variável num está recebendo o valor 1 porque é o valor inicial entre 1 e 50 e outra coisa, a variável que ficará dentro do while tem que ser sempre inicializada antes do teste */

setlocale(LC_ALL,"Portuguese");

printf("\n\t Imprimir os números de 1 até 50 : \n");

while (num<=50)  /* Enquanto num menor ou igual a 50 diz que o laço será interrompido assim que o contador num ficar maior que 50.*/

     printf(" %d\n",num); /* imprime o num */

     num++; /*é o mesmo que num=num+1*/

9º Exercício resolvido - comando while 

Crie um programa para ler 3 notas e mostrar a
média delas.

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

int main()  /*função principal*/
{
float soma,notas,media;
int contador;
 soma=0;
 contador=1; /*A variável de controle deve ser sempre inicializada quando utilizamos o while*/
setlocale(LC_ALL,"portuguese");

 while(contador<=3) /*com essa condição,vamos calcular a média pra 3 notas já que contador é inicializado com valor 1 lá em cima*/
     {
       printf("\t Digite a [%d]ª nota : ",contador);

       media=soma/3;
       contador++;
      }
printf("Média = %.1f ",media );
return 0;
}

Explicação >>> 

  • Em programação, uma condição é qualquer expressão que resulte em um valor do tipo lógico e pode envolver operadores aritméticos,lógicos, relacionais e resultados de funções. Exemplo : numero>7, idade<=9, numero>1 && numero<4 .

10º Exercício resolvido - comando while  


Faça um programa que mostre a tabuada de um número N (N será lido do teclado). 

Código-fonte

#include<stdio.h>
int main()
{
  int tabuada, variavel_contadora = 1, num;
  printf("Entre com um número: \n");
  scanf("%d",&num);
  while(variavel_contadora <= 12)
      {
        tabuada = num *variavel_contadora;
        printf("%d x %d = %d\n",num, variavel_contadora,tabuada);
        variavel_contadora++;
      }
return 0;
}
11º Exercício resolvido - comando while 


Faça um programa que peça ao usuário um número entre 12 e 20. Se a pessoa digitar um número diferente, mostrar a mensagem "entrada inválida" e solicitar o número novamente. Se digitar correto mostrar o número digitado.

setlocale(LC_ALL,"portuguese");

printf(" \n\t Entre com o número :\n");

 while(variavel_controle<=7)

      if(numero>12 && numero<20)

          printf("\n o número digitado é o %d",numero);

          break; /*o comando break serve para interromper a execução de qualquer loop (for, while ou do-while).Estamos utilizando pra finalizar o loop caso a pessoa digite um número entre 12 e 20 */

         }
       else /*se número estiver fora do intervalo, imprime o bloco abaixo*/

            printf("\n Entrada inválida \n ");

            printf("\n Digite um número novamente :");

            variavel_controle++;  /*como o número não está entre 12 e 20,o programa executa novamente e volta a testar a condição*/

    }//fim do while
 return 0;


12º Exercício resolvido - comando while 

Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade,
sexo (M/F) e salário. Faça um programa que calcule e mostre:

a) A média dos salários do grupo;

b) A maior e a menor idade do grupo;
c) A quantidade de mulheres na região;
d) A idade e o sexo da pessoa que possui o menor salário;

Finalize a entrada de dados ao ser digitada uma idade negativa.

Código-fonte

#include<stdio.h>

int main()

{
char sexo = 0,sexo_menorsalario = 0;
int idade,maior,menor,idade_menorsalario,qtd_mulheres,qtidadehabitantes;
double salario,menorsalario=1,soma_salario;

idade = 0;

qtidadehabitantes = 0;
qtd_mulheres= 0;
maior = 0;
menor = 200;
idade_menorsalario = 9999;
salario = 0;
soma_salario =0;

while(idade >=0)
    {
       printf(" \n * Informe a idade do entrevistado: ");
       scanf("%d",&idade);

      
if(idade < 0)
       {
        break; /*Se a idade for menor que zero, o comando while finaliza a entrada de dados */
       }
      printf("\n Sexo <M/F>: "); /*As letras M e F devem ser maiúsculas*/
      scanf("%s",&sexo);

      printf(
"\n Informe o Salario: R$");
      scanf("%d",&salario);

      
if(sexo =='F')
       {
qtd_mulheres =qtd_mulheres+ 1;
       }

     
if(salario >= 0 )
       {
         soma_salario = soma_salario + salario;
         qtidadehabitantes = qtidadehabitantes +1;
        }

        if(idade > maior)
        {

          maior =idade;
         }

      
if(idade < menor)
       {
        menor = idade;
       }

      
if(salario < menorsalario)
       {
         menorsalario=salario;
         idade_menorsalario = idade;
         sexo_menorsalario = sexo;
       }

 }
// fim do while
     printf("\n\t Fim programa \n");

     printf(
"\n Media dos salarios do grupo: R$ %d \n",soma_salario/qtidadehabitantes);
     printf(" Menor idade: %d anos \n",menor);
     printf(" Maior idade: %d anos \n",maior);
     printf("\n A quantidade de mulheres na regiao = %d ",qtd_mulheres);
     printf("\n A idade da pessoa e o sexo do que possui o menor salario, foi : %d anos , do sexo :%c \n",idade_menorsalario,sexo_menorsalario);

return 0;
}

13º Exercício resolvido - comando do-while 

Escreva um algoritmo que leia um número do teclado até que encontre um número menor ou igual a 1.

Código-fonte



#include<stdio.h>

int main()
{
int num;
printf("\n Digite os numeros \n");

do {
   scanf("%d",&num);
  } while(num>1);   /*Enquanto num maior que 1 o código vai ser executado, ou seja, quando a gente inserir um número menor ou igual a 1 o programa vai ser encerrado */

return 0;
}
14º Exercício resolvido - comando do-while 

Crie um programa que leia um número do teclado até que encontre um número igual a zero. No final, mostre a soma dos números digitados.

Código-fonte

#include<stdio.h>

int main()
{
int num, soma=0;
printf("Digite os numeros \n");
do {
    scanf("%d",&num);
    soma=soma+num;
   } while(num !=0);  /*Enquanto num diferente de zero o código vai ser executado, ou seja, quando a gente inserir o número zero , o programa vai ser encerrado */
printf(" soma=%d",soma);

return 0;
}

Exemplos - comando while em Python - Exercícios resolvidos


Exemplos - comando for em Python - Exercícios resolvidos

Os exercícios foram úteis? Seja gentil, comente aqui com a gente :)

Esta lista de exercícios resolvidos é um manual para ajudar todo aluno iniciante e não só, a adquirir e aprimorar as habilidades necessárias para se trabalhar com Python, de forma rápida e consistente. Estude e desfrute do conteúdo. 1º Exercício      Faça um programa que informe a versão do Python que você está utilizando Solução import sys print ( "Versão do Python" ) print (sys.version) print ( "Informação da versão instalada" ) print (sys.version_info) Atenção :     -  O módulo sys fornece funções e variáveis usadas para manipular diferentes partes do ambiente de tempo de execução do Python;     - Pra quem ainda não está familiarizado com a linguagem, um módulo  é um arquivo contendo definições e comandos em Python para serem usados em outros programas. 2º Exercício      Faça um programa em linguagem Python que converta metros para centímetros. Solução print ( ' \t ----Conversão de medida---- ' ) metros = int ( input ( 'Informe o valor em metros: 

Este é um programa em que o usuário ao digitar uma string, o programa vai imprimir essa string de trás pra frente , ou seja, a string será mostrada ao contrário. Observação : Se você quiser ver esse código em Linguagem Python, veja o 6º exercício  desta lista de exercícios Código-fonte #include <stdio.h>  /*Arquivo cabeçalho que contém a função printf()*/ #include <string.h>   / *Arquivo cabeçalho que contém as funções para manipulação de strings como,strlen,strcmp,etc. */ int main() { char strings[200]; int i, tamanho;  printf( "Digite uma string: " );  fgets(strings,200,stdin); tamanho = strlen(strings);  printf( "A string invertida : " );    for(i=tamanho; i>=0; i--)       {        printf ( "%c" ,strings [i] );       }  return 0; } Explicações : strlen é uma função que retorna o tamanho da string digitada ; Em char strings[200] ,declaramos uma string de nome strings com 200 caracteres,mas como uma

Escreva um programa para calcular a área de um triângulo, sendo dados a sua base e a  sua altura. A = (B*H)/2 Solução #include <stdio.h> int main() {   // Variáveis  float area,base,altura;  // Entrada de Dados  printf( "\n Informe a base do triângulo: " );  scanf( "%f" ,&base);  printf( "\n Informe a altura do triângulo: " );  scanf( "%f" ,&altura);   // Processamento dos dados  area=(base*altura)/2;  // Exibição do resultado  printf( "\n Area do triângulo=%.1f\n" ,area);   return 0; }