Escreva um algoritmo que solicite ao utilizador os algarismos de um número entre 1001 e 9999 sendo
que todos estes algarismos devem ser ímpares. A introdução de um algarismo que não respeite esta
regra, deve de imediato interromper a leitura do número e mostrar uma mensagem sugestiva. No caso
de a leitura estar correta, deverá ser mostrado o número lido e o quadrado desse número
Soluções para a tarefa
Resposta:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,"PORTUGUESE");
//CRIAR VARS
int num1, num2, num3, num4, flag;
//INICIALIZAR VARS
num1 = num2 = num3 = num4 = flag = 0;
//PROCESSAR DADOS
printf("\n\n\tLEITURA DOS VALORES:\n");
do
{
printf("\n\n INFORME O 1° VALOR: ");
fflush(stdin);
scanf("%d", &num1);
if(num1 % 2 == 0)
{
printf("\n\n %d NÃO É UM NÚMERO ÍMPAR...\n\n",num1);
flag = 1;
}
else
{
printf("\n\n INFORME O 2° VALOR: ");
fflush(stdin);
scanf("%d", &num2);
if(num2 % 2 == 0)
{
printf("\n\n %d NÃO É UM NÚMERO ÍMPAR...\n\n",num2);
flag = 1;
}
else
{
printf("\n\n INFORME O 3° VALOR: ");
fflush(stdin);
scanf("%d", &num3);
if(num3 % 2 == 0)
{
printf("\n\n %d NÃO É UM NÚMERO ÍMPAR...\n\n",num3);
flag = 1;
}
else
{
printf("\n\n INFORME O 4° VALOR: ");
fflush(stdin);
scanf("%d", &num4);
if(num4 % 2 == 0)
{
printf("\n\n %d NÃO É UM NÚMERO ÍMPAR...\n\n",num4);
flag = 1;
}
else
{
num1 = num1 * 1000;
num1 = num1 + num2 * 100;
num1 = num1 + num3 * 10 + num4;
if(num1 <= 1001 || num1 >= 9999)
{
printf("\n\n %d NÃO ESTÁ ENTRE 1001 E 9999...\n\n");
flag = 1;
}
else
{
printf("\n\n============================");
printf("\n\n VALOR INSERIDO..: %d",num1);
printf("\n\n QUADRADO DE %d: %d",num1,num1*num1);
printf("\n\n============================\n\n");
}
}
}
}
}
}while(flag != 1);
return 0;
}
Qualquer dúvida, estou à disposição!
Abraços e bons estudos!
introduzido pelo utilizador.
Exemplo: Entrada: 36781
Saída: 14 (8+6)
b) Altere o algoritmo de modo a ser aplicado a uma sequência de números inteiros terminada por
número não positivo.