Questões sobre o laço WHILE em C

Na aula passada, em nosso curso online C Progressivo, aprendemos sobre o tão famoso e importante laço WHILE, da linguagem C.

Vamos agora propor algumas questões para você treinar e fixar seus conhecimentos.
Tente usar somente o laço while, e nenhum outro.

Não vá olhar a solução nem o código antes de tentar, bastante, resolver por conta própria. Do contrário, nunca aprenderá C.

Clique aqui e saiba como obter seu certificado de programação C! Entre já no Mercado de Trabalho!



Apostila C Progressivo - Exercícios sobre o laço WHILE

0. Programa em C dos patinhos da Xuxa
Xuxa, a rainha dos baixinhos, criou uma música que tem o segunte formato:

n patinhos foram passear
Além das montanhas
Para brincar
A mamãe gritou: Quá, quá, quá, quá
Mas só n-1 patinhos voltaram de lá.

Que se repete até nenhum patinho voltar de lá.
Ao final, todos os patinhos voltam:

A mamãe patinha foi procurar
Além das montanhas
Na beira do mar
A mamãe gritou: Quá, quá, quá, quá
E os n patinhos voltaram de lá.

Crie um programa em C que recebe um inteiro positivo do usuário e exibe a música inteira na tela, onde o inteiro recebido representa o número inicial n de patinhos que foram passear.

1. Programa em C que mostra os números ímpares
Escreva um aplicativo em C mostra todos os números ímpares de 1 até 100.

2. Programa em C que mostra os números pares
Escreva um aplicativo em C mostra todos os números pares de 1 até 100.

3. Programa em C que mostra os números pares e ímpares 
Escreva um aplicativo em C que recebe inteiro e mostra os números pares e ímpares (separados), de 1 até esse inteiro.



4. Programa em C que calcula a média das notas de uma turma
Escreva um programa que pergunte ao usuário quantos alunos tem na sala dele.
Em seguida, através de um laço while, pede ao usuário para que entre com as notas de todos os alunos da sala, um por vez.

Por fim, o programa mostra a média, aritmética, da turma.

5. Achando o maior número
Achar o maior, menor, média e organizar números ou sequências são os algoritmos mais importantes e estudados em Computação. Em C não poderia ser diferente.
Em nosso curso, obviamente, também não será diferente.

Escreva um programa em C que solicita 10 números ao usuário, através de um laço while, e ao final
mostre qual destes números é o maior.

6. Achando os dois maiores números
Escreva um programa em C que solicita 10 números ao usuário, através de um laço while, e ao final
mostre os dois maiores números digitados pelo usuário.

7. Quadrado de asteriscos
Escreva um programa que lê o tamanho do lado de um quadrado e imprime um quadrado daquele tamanho com asteriscos. Seu programa deve funcionar para quadrados com lados de todos os tamanhos entre 1 e 20.
Para lado igual a 5:
*****
*****
*****
*****
*****

8. Quadrado de asteriscos e espaços em branco
Escreva um programa que lê o tamanho do lado de um quadrado e imprime um quadrado daquele tamanho com asteriscos e espaços em branco. Seu programa deve funcionar para quadrados com lados de todos os tamanhos entre 1 e 20.
Para lado igual a 5:
*****
*    *
*    *
*    *
*****

9. Tabuada em C
Escreva um programa que pergunta um número ao usuário, e mostra sua tabuada completa (de 1 até 10).

10. Tabela ASCII em C
Se você lembrar bem, quando estudamos as variáveis do tipo caractere, char, dissemos que, na verdade, ela eram representadas por inteiros de 0 até 255.
Mostre a tabela completa do código ASCII.



6 comentários:

José Renato do Guanor disse...

Me perdoe a intromissão, mas nos códigos dos exercicios de impares e pares de 1 a 100, não deveria existir um 'else' depois do 'if'?
Se for pensar na lógica do código da solução, se (count%2 == 1) ele soma +1 em count, senão, ele não soma nada e o programa não roda.
Na verdade deveria ter o 'else' e depois o incremento a variavel. A unica diferença é que no 'else' não haverá o 'printf'. Deem uma olhada no meu código:

#include

int main ()
{
int n=1;
while (n<=100)
{
if (n%2==0)
{
printf("%d, ",n);
n++;
}
else
{
n++;
}
}
}

Mas uma vez me desculpe pela intromissão, mas acredito que esse tipo de discussão só colabora mais ainda para a didática do curso.
Obrigado

Apostila C Progressivo disse...

Olá José,

Note que no nosso código, depois do IF não há o par de chaves { }

Quando não usamos o par de chaves, somente a primeira instrução imediatamente após o IF (ou ELSE, ou WHILE, ou FOR ou DO WHILE) é que é executada!

Ou seja, se o IF for verdadeiro, aí é executado o printf.

Mas independente do IF ser verdadeiro ou não, o 'count' é incrementado, pois está fora do IF e dentro do WHILE.

Qualquer dúvida, sugestão ou errata, não exitem em comentar.
Certamente ajuda a aumentar o conteúdo do site, e sua dúvida pode ser a de outros.

Anônimo disse...

Bom.Tentei criar um programa que mostre o maior numero então queria ver se estar certo, apesar do resultado tenha sido positivo.obrigado!

#include

main()
{
int num1,num2;

printf("Valor 1:");
scanf("%d", &num1);

printf("Valor 2:");
scanf("%d", &num2);

while(num1 > num2)
{
if(num1 > num2)
{
printf("%d", num1);
break;
}else
{
printf("%d",num2);
break;
}
}
}

Vinicius disse...

Gostaria de saber se a 6ª questão poderia ser feita da seguinte forma:

#include

main(){

int maior, segundo_maior, count=3, num;

printf("Digite o valor 1\n");
scanf("%d", &maior);

printf("Digite o valor 2\n");
scanf("%d", &segundo_maior);

fflush(stdin);
while( count <= 10){
count++;

printf("Digite o valor %d\n", count);
scanf("%d", &num);
fflush(stdin);

if(num > maior){

segundo_maior = maior;
maior = num;
}
else
if((num > segundo_maior) && (num < maior))
segundo_maior = num;

}

printf("Os maiores valores, respectivamente, sao: %d e %d", maior, segundo_maior);

}

thiagowesley.sjc@gmail.com disse...

Exercício 0:

#include
#include

main ()
{
int num, num2;

printf (" Quantos patinhos foram passear?\n\n --> ");
scanf ("%d", &num);
num2 = num;

while (num > 0)
{
printf ("\n %d patinhos foram passear\n Alem das montanhas\n Para brincar \n A mamae gritou: Qua, qua, qua, qua.. ", num);
num--;
printf ("\n Mas so %d patinhos voltaram de la.\n", num);
}

printf ("\n A mamae patinha foi procurar\n Alem das montanhas\n Na beira do mar\n A mamae gritou: Qua, qua, qua, qua..\n E os %d patinhos voltaram de la.", num2);
}

MAC disse...

//6. Achando os dois maiores números
//Escreva um programa em C que solicita 10 números ao usuário, através de um laço while, e ao final
//mostre os dois maiores números digitados pelo usuário.
//MAC
#include
int main()
{
int num,maior=0,maior2=0,count=1;
while (count<=10)
{
printf("digite o %d numero",count);
scanf("%d",&num);
if (num>maior)
{
maior2=maior;
maior=num;

}
else
{
if ((nummaior2))
{
maior2=num;
}

}
count++;
}
printf("o maior numero foi %d e o %d o segundo maior",maior,maior2);
}


Gostou desse tutorial de C?
Sabia que o acervo do portal C Progressivo é o mesmo, ou maior que, de um livro ou curso presencial?
E o melhor: totalmente gratuito.

Mas para nosso projeto se manter é preciso divulgação.
Para isso, basta curtir nossa página no Facebook e/ou clicar no botão +1 do Google.
Contamos e precisamos de seu apoio.