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.



36 comentários:

  1. 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

    ResponderExcluir
  2. 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.

    ResponderExcluir
  3. 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;
    }
    }
    }

    ResponderExcluir
  4. 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);

    }

    ResponderExcluir
  5. 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);
    }

    ResponderExcluir
  6. //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);
    }


    ResponderExcluir
  7. BOA TARDE GALERA... TENHO UM PROBLEMA AQUI E PRECISO DE AJUDA...
    ESTE CODIGO DESTINA-SE AO EXERCICIO 4 DE ELABORAR A MEDIA DA TURMA...
    O PROBLEMA É QUE NÃO CONSIGO PUXAR A MEDIA DA TURMA... ME AJUDAM POR FAVOR...
    #include
    #include

    void linha()
    {
    int i;
    for (i=1; i<=80; i++)
    putchar('-');

    }

    main()
    {
    int n_aluno; float nota, media = 0.0 ; int ordem = 1; /*IMPRIMIR PROXIMA LINHA*/ printf("\n\t\t\tCALCULADORA DE MEDIA DA TURMA\n"); linha();


    printf("\nQUANTOS ALUNOS EXISTEM: "); scanf("%d", &n_aluno); putchar('\n'); linha();

    while (ordem <= n_aluno)
    {
    printf("\nINTRODUZ A NOTA %d : ", ordem++); scanf("%f", &nota);
    }

    media= media + nota;

    ordem++;

    linha(); putchar('\n'); /**/ printf("\nA MEDIA DA TURMA CORRESPONDE A: %.2f VALORES \n\n", media/n_aluno); /**/ linha();

    putchar('\n');
    system("pause");
    }

    ResponderExcluir
  8. No exercicio 1 eu fiz o que se pediu, mas depois eu fiquei brincando com essa ideia e eu fiz um programa em que voce digita quaisquer 2 numeros e ele mostra todos os numeros impares entre esses dois numeros, ta ai pra voces compilarem, nao se esqueçam do include:

    int main(void)
    {
    int num1;
    int num2;
    int contador;

    printf("Programa que mostra todos os numeros impares\n");
    printf("entre dois numeros inseridos pelo usuario.\n\n");

    printf("Insira o primeiro numero: ");
    scanf("%d",&num1);

    printf("Insira o segundo numero: ");
    scanf("%d",&num2);
    printf("\n");

    contador = num1;

    while(contador <= num2)
    {
    if(contador%2 == 1)
    {
    printf("%d, ",contador);
    contador++;
    }
    else
    {
    contador++;
    }

    }
    }

    ResponderExcluir
  9. Fiz o meu dos patinhos assim:

    #include

    int main(){
    int n, x;
    printf("Informe a quantidade de patinhos inicial: ");
    scanf("%d", &n);
    fflush(stdin);
    x = n;
    while(x != 0){
    printf("\n\n%d patinhos foram passear\nAlem das montanhas\nPara brincar\nA mamae gritou: Qua, qua, qua, qua\nMas so %d patinhos voltaram de la.\n", x--, x-1);
    }
    printf("\n\nA mamae patinha foi procurar\nAlem das montanhas\nNa beira do mar\nA mamae gritou: Qua, qua, qua, qua\nE os %d patinhos voltaram de la.", n);
    getchar();
    }

    ResponderExcluir
  10. # include
    # include

    int main (void) {
    int i = 0, j = 0, num;

    printf("Digite um numero para ver o seu respectivo quadrado: ");
    scanf("%i", &num);

    while(i < num){
    while(j < num){
    if(i == 0 || j == 0 || i == num-1 || j == num-1){
    printf("%c", '*');
    } else {
    printf("%c", ' ');
    }
    ++j;
    }
    printf("\n");
    ++i;
    j = 0;
    }

    system("pause");
    return 0;
    }

    ResponderExcluir
  11. olá , queria saber o porque de quando eu fiz o da tabela de letras e tambem em algumas letras quando executo ao inves de aparecer a propria aparece um caractere estranho , como resolver?

    ResponderExcluir
  12. #include
    #include
    /*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.*/
    int main()
    {
    setlocale(LC_ALL,"portuguese");
    int iNum,iCont1=0,iCont2=0,iNLinhas=0;
    printf("Escolha um número de 1 a 20: ");
    scanf("%d",&iNum);
    if(iNum<=0||iNum>=21)
    {
    printf("Parece que você não gosta de seguir regras em, mas azar o seu!");
    }
    else
    {
    while(iCont1<iNum)
    {
    printf("%d ",iNLinhas+1);
    while(iCont2<iNum)
    {
    printf("*");
    iCont2++;
    }
    printf("\n");
    iCont2=0;
    iCont1++;
    iNLinhas++;
    }
    }
    return 0;
    }

    ResponderExcluir
  13. #include
    #include
    /*9. Tabuada em C
    Escreva um programa que pergunta um número ao usuário, e mostra sua tabuada completa (de 1 até 10).*/
    int main()
    {
    setlocale(LC_ALL,"portuguese");
    float fNum,fCont=1,fA=1,fS=1,fD=1,fM=1;
    printf("Escolha um número: ");
    scanf("%f",&fNum);
    while(fCont<=10)
    {
    printf("Adição: %.f + %.f = %.f\n",fNum,fA,fNum+fA);
    printf("================================================\n");
    printf("Subtração: %.f - %.f = %.f\n",fNum,fS,fNum-fS);
    printf("================================================\n");
    printf("Multiplicação: %.f * %.f = %.f\n",fNum,fM,fNum*fM);
    printf("================================================\n");
    printf("Divisão: %.f / %.f = %.2f\n",fNum,fD,fNum/fD);
    fA++;
    fS++;
    fD++;
    fM++;
    fCont++;
    }
    return 0;
    }

    ResponderExcluir
  14. Este comentário foi removido pelo autor.

    ResponderExcluir
  15. Meu código para a Questão 6:

    #define TAM 10
    int main () {
    int i = 0, numero[TAM], maiorNumero = 0, maiorNumero2 = 0;

    setlocale(LC_ALL, "Portuguese");

    printf("\t MAIOR NÚMERO\n\n");
    while (i != 10) {
    printf("\n- Digite o %dº número: ", i + 1);
    scanf("%d", &numero[i]);

    if (numero[i] > maiorNumero) {
    maiorNumero = numero[i];
    }
    i++;
    }

    i = 0;
    while (i != 10) {
    if (numero[i] > maiorNumero2 && numero[i] < maiorNumero) {
    maiorNumero2 = numero[i];
    }
    i++;
    }

    printf("\nO maior número foi: %d", maiorNumero);
    printf("\n\nO segundo maior número foi: %d", maiorNumero2);

    return 0;
    }

    ResponderExcluir
  16. Meu código para a Questão 8:

    int main () {
    int i = 0, j = 0, numero = 0;

    setlocale(LC_ALL, "Portuguese");

    do {
    printf("- Digite o tamanho do lado do quadrado: ");
    scanf("%d", &numero);

    if (numero < 1 || numero > 20) {
    printf("\nEscreva um numero entre 1 a 20.\nTente Novamente.\n\n");
    }
    } while (numero < 1 || numero > 20);

    printf("\n\n");

    while (i < numero) {
    printf("* ");
    i++;
    }

    i = 2;
    while (i < numero) {
    printf("\n*");

    j = 1;
    while (j < numero) {
    if (j == numero - 1) {
    printf(" ");
    } else {
    printf(" ");
    }
    j++;
    }

    printf("*");
    i++;
    }

    printf("\n");

    i = 0;
    while (i < numero) {
    printf("* ");
    i++;
    }
    return 0;
    }

    ResponderExcluir
  17. Meu código para a Questão 0:

    int main () {
    int numero = 0;

    printf("- Digite a quantidade de patos: ");
    scanf("%d", &numero);

    int i = numero;

    setlocale(LC_ALL, "Portuguese");

    while (i != 0) {
    printf("\n\n=====================================\n\n");
    if (i == 1) {
    printf("1 patinho foi passear\n");
    } else {
    printf("%d patinhos foram passear\n", i);
    }
    printf("Além das montanhas\n");
    printf("Para brincar\n");
    printf("A mamãe gritou: Quá, quá, quá, quá\n");
    if (i - 1 == 0) {
    printf("Nenhum patinho voltou de lá\n");
    } else if (i - 1 == 1){
    printf("Mas só 1 patinho voltou de lá\n");
    } else {
    printf("Mas só %d patinhos voltaram de lá.\n", i - 1);
    }
    i--;
    }

    return 0;
    }

    ResponderExcluir
  18. Uma sugestão de solução para a questão 6:

    Utilizar um "laço while" dentro de outro "laço while"
    ----------
    #include
    #include

    int main(void)
    {
    int n,
    i = 1,
    x = 0,
    y = 0;

    printf("Digite 10 numeros\n");

    while (i <= 10)
    {
    printf("Digite o numero %d de 10: ", i);
    scanf("%d", &n);
    fflush(stdin);

    while (x < n)
    {
    y = x;
    x = n;
    }
    i++;
    }
    printf("========================================\n");
    printf("O maior numero digitado e: %d\n", x);
    printf("O segundo maior numero digitado foi: %d\n", y);
    }

    ResponderExcluir
  19. Questão 0 - Considerando o plural e singular

    #include

    int main (void)
    {
    int np, ni;

    printf("\t Entre com um inteiro positivo \n");
    scanf("%d", &np);
    ni = np;
    if(np < 0)
    {
    printf("\t O inteiro deve ser positivo \n");
    }
    else
    {
    while (np > 0)
    {
    if((np == 2) || (np == 1))
    {
    if (np == 2)
    {
    printf("\n %d patinhos foram passear\n Alem das montanhas\n Para brincar\n A mamae gritou: Qua, qua, qua, qua\n Mas so %d patinho voltou de la.\n\n", np, np - 1);
    np--;
    }
    else
    {
    printf("\n %d patinho foi passear\n Alem das montanhas\n Para brincar\n A mamae gritou: Qua, qua, qua, qua\n Mas %d patinho voltou de la.\n\n", np, np - 1);
    np--;
    }
    }
    else
    {
    printf("\n %d patinhos foram passear\n Alem das montanhas\n Para brincar\n A mamae gritou: Qua, qua, qua, qua\n Mas so %d patinhos voltaram de la.\n\n", np, np - 1);
    np--;
    }
    }
    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\n\n.", ni);
    }
    return 0;
    }

    ResponderExcluir
  20. Questao 1

    #include

    int main (void)
    {
    int n = 0;
    printf("\t Os numeros pares ate 100 sao: \n");
    while (n != 102)
    {
    printf("\t %d", n);
    n+=2;
    }
    return 0;
    }

    ResponderExcluir
  21. Questão 2 - Troquei a 1 com a 2. Esta é para números impares

    #include

    int main (void)
    {
    int n = 1;
    printf("\t Os numeros pares ate 100 sao: \n");
    while (n != 101)
    {
    printf("\t %d", n);
    n+=2;
    }
    return 0;
    }

    ResponderExcluir
  22. Questao 3

    #include

    int main (void)
    {
    int np = 0, ni = 1, nf = 1;

    do
    {
    printf("\t Entre com um numero inteiro positivo");
    scanf("%d", &nf);
    }
    while( nf < 0);

    printf("\t Os numeros pares ate %d sao: \n", nf);
    while (np != nf)
    {
    printf("\t %d", np);
    np+=2;
    }

    printf("\n\t Os numeros impares ate %d sao: \n", nf);
    while (ni != nf+1)
    {
    printf("\t %d", ni);
    ni+=2;
    }

    return 0;
    }

    ResponderExcluir
  23. Questao 4

    #include

    int main (void)
    {
    int num_alunos;
    float counter = 1, soma = 0, nota = 0;

    printf("\t Entre com a quantidade de alunos da sala \n");
    scanf("%d", &num_alunos);

    while ( counter - 1 != num_alunos )
    {
    printf("\t Entre com as nota do aluno %4.0f \t", counter);
    scanf("%f", &nota);
    soma = soma + nota;
    counter++;

    }
    printf("\t Media das notas = %.2f"\n\n, soma / num_alunos);

    return 0;
    }

    ResponderExcluir
  24. Questão 5

    #include

    int main (void)
    {
    int counter =1, number, maior;

    while ( counter <= 10)
    {
    printf("\t Entre com 10 numeros inteiros ");
    scanf("%d", & number);
    if (counter == 1)
    {
    maior = number;
    }
    if (number > maior)
    {
    maior = number;
    }
    counter++;
    }

    printf("\t O maior numero e: %d", maior);
    return 0;
    }

    ResponderExcluir
  25. Questão 7. Quadrado de asteriscos

    #include

    int main(void)
    {
    int lado, counter_i = 1, counter_j = 1;
    printf("\tEntre com o tamanho do quadrado . Entre 1 e 20\n\n");
    scanf("%d", &lado);
    if ((lado < 1) || (lado > 20))
    printf("\t O tamanho do quadrado deve ser entre 1 e 20\n\n");
    else
    {
    while (counter_i <= lado)
    {
    while (counter_j <= lado)
    {
    printf("*");
    counter_j++;
    }
    counter_j =1;
    printf("\n");
    counter_i++;
    }
    }
    printf("\n\n");
    return 0;
    }

    ResponderExcluir
  26. Questão 8. Quadrado de asteriscos e espaços em branco

    #include

    int main(void)
    {
    int lado, counter_i = 1, counter_j = 1, counter_k = 1;
    printf("\tEntre com o tamanho do quadrado . Entre 1 e 20\n\n");
    scanf("%d", &lado);
    if ((lado < 1) || (lado > 20))
    printf("\t O tamanho do quadrado deve ser entre 1 e 20\n\n");
    else
    {
    while (counter_i <= lado)
    {
    if ((counter_i == 1) || (counter_i == lado))
    {
    while (counter_j <= lado)
    {
    printf("*");
    counter_j++;
    }
    counter_j = 1;
    printf("\n");
    }
    else
    {
    printf("*");
    while (counter_k <= lado - 2)
    {
    printf(" ");
    counter_k++;
    }
    printf("*");
    counter_k = 1;
    printf("\n");
    }
    counter_i++;
    }
    }
    printf("\n\n");
    return 0;
    }

    ResponderExcluir
  27. 9. Tabuada completa (de 1 até 10).

    #include

    int main (void)
    {
    int num;
    printf("\t Entre com um numero de 1 a 10 para saber qual é sua Tabuada \n");
    scanf("%d", &num);

    if(num <= 0)
    printf("\t O numero deve estar entre 1 e 10 \n");
    else
    {
    printf("\t Tabuada de %d \n\n", num);
    printf("\t 0 x %d = %d\n", num, 0 * num);
    printf("\t 1 x %d = %d \n", num, 1 * num);
    printf("\t 2 x %d = %d \n", num, 2 * num);
    printf("\t 3 x %d = %d \n", num, 3 * num);
    printf("\t 4 x %d = %d \n", num, 4 * num);
    printf("\t 5 x %d = %d \n", num, 5 * num);
    printf("\t 6 x %d = %d \n", num, 6 * num);
    printf("\t 7 x %d = %d \n", num, 7 * num);
    printf("\t 8 x %d = %d \n", num, 8 * num);
    printf("\t 9 x %d = %d \n", num, 9 * num);
    }
    return 0;
    }

    ResponderExcluir
  28. Questao 10. Tabela ASCII em C


    #include

    int main (void)
    {
    int counter = 0;
    printf("\t\t\t Tabela ASCII \n");
    printf("\t\t\t Decimal Caracter \n\n");
    while (counter <= 255)
    {
    printf("\t\t\t %d \t %c \n", counter, counter);
    counter++;
    }

    }

    ResponderExcluir
  29. Questao 10. Tabela ASCII em C

    #include

    int main (void)
    {
    int counter = 0;
    printf("\t\t\t Tabela ASCII \n");
    printf("\t\t\t Decimal Caracter \n\n");
    while (counter <= 255)
    {
    printf("\t\t\t %d \t %c \n", counter, counter);
    counter++;
    }

    }

    ResponderExcluir
  30. Exercicio 5

    #include "math.h"
    #include "stdio.h"
    #include "stdlib.h"
    #include "string.h"
    #include "locale.h"


    int main()
    {
    char *caractere; // usado para declarar um ponteiro que segura o buffer do teclado
    setlocale(LC_ALL, "Portuguese"); // Insira essa linha para ter acentos(cuidado ao usar float, ao inves de usar '.' use ',' entre numeros)


    int n = 0;
    int x = 0; // quantidade de iterações
    int soma = 0; // usada para reter valor de n para adquirir soma, media etc

    int maior, menor;
    maior = -999; //começa com o menor numero possivel (acredite, esta correto)
    menor = 999; //começa com o maior numero possivel


    printf("\tDigite 10 números \n");

    while (x < 10)
    {
    printf("\t");
    scanf("%d", &n);

    if (n < menor)
    menor = n;
    else if (n > maior)
    maior = n;
    soma = soma + n;
    x++;
    scanf("%c", &caractere); //limpa o buffer da tecla enter
    fflush(stdin); //limpa o buffer do enterde usar qualquer dois dois nesse caso)
    }

    printf("Número maior vale:% d, menor vale: %d. Média vale %d.", maior, menor, soma / 10);

    scanf("%c", &caractere);
    return 0;
    }

    ResponderExcluir
  31. O exercício dos quadrados/retângulos não preenchidos eu tive bastante dificuldade. Eu sei que o enunciado pedia quadrado, mas, para aumentar a dificuldade, eu fiz com que o usuário pudesse escolher a largura e a altura. Segue código. Gostaria muito de críticas. :)

    #include

    int main(void)
    {
    unsigned int alt, base, cont_alt=1, cont_base=1;

    printf("EDITOR DE RETANGULO/QUADRADO\n\n");
    printf("Largura: ");
    scanf("%d", &base);
    printf("Altura: ");
    scanf(" %d", &alt);
    printf("\n");

    if (alt>15 || base>50)
    printf("Medidas invalidas (Max. 50x15)");
    else
    {
    while(cont_alt<=alt)
    {
    while(cont_alt==1 || cont_alt==alt)
    {
    printf("\n");
    cont_base=1;
    while(cont_base<=base)
    {
    printf("*");
    cont_base++;
    }
    cont_alt++;
    }
    while (cont_alt<alt)
    {
    cont_base=1;
    printf("\n*");
    cont_base++;
    while (cont_base<base)
    {
    printf(" ");
    cont_base++;
    }
    printf("*");
    cont_alt++;
    }
    }
    }
    return 0;
    }

    ResponderExcluir
  32. Fiquei umas meia hora pensando e tentando só mostrar números impares na tela, ai do nada eu pensei: é só ao invés de acrescentar mais 1 eu acrescento mais 2 ai a soma sempre resulta em impar zzzzzz, extremamente simples

    ResponderExcluir
  33. int main(void)
    {
    int num = 1;

    while (num<=100) {
    {printf("%5d", num);}
    num++; num++;
    }
    }


    ResponderExcluir
  34. No terceiro exercicio eu separei eles de verdade:

    int main(void)
    {
    int cont=1,cont1=1, ne;

    printf("Digite o numero:");
    scanf("%d", &ne);

    while (cont<=ne) {
    if ((cont%2)==0){
    printf("%5d", cont); }
    cont++; }

    printf("\n\n");

    while (cont1<=ne) {
    if ((cont1%2)==1) {
    printf("%5d", cont1);}
    cont1++;
    }

    ResponderExcluir

É quase impossível criar centenas de páginas voltadas para programação C e não cometer algum erro.

- Se notar algum conceito, letra ou trecho de código errado, deixe sua correção

- Se perceber uma maneira melhor ou mais eficiente de fazer algo, deixe sua ideia

- Se algo não ficar claro ou for confuso, nos avise

Aos poucos vamos aumentando e melhorando a qualidade de nosso material, e para isso contamos com sua ajuda.