3. Faça um programa em C que leia 4 valores X, A, B e C onde X é um número inteiro e positivo e A, B,e C são quaisquer valores reais. O programa deve escrever os valores lidos e: • se X = 1, escrever os três valores A, B e C em ordem crescente; • se X = 2, escrever os três valores A, B e C em ordem decrescente; • se X = 3, escrever os três valores A, B, e C de forma que o maior valor fique entre os outros dois; • se X não for um dos três valores acima, dar uma mensagem indicando isso.
Soluções para a tarefa
Respondido por
0
Eu faria assim em C
/*
Faça um programa em C que leia 4 valores X, A, B e C onde
X é um número inteiro e positivo e A, B,e C são quaisquer valores reais.
O programa deve escrever os valores lidos e:
• se X = 1, escrever os três valores A, B e C em ordem crescente;
• se X = 2, escrever os três valores A, B e C em ordem decrescente;
• se X = 3, escrever os três valores A, B, e C de forma que o maior valor
ique entre os outros dois
• se X não for um dos três valores acima, dar uma mensagem indicando
sso.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
float maior( float um_valor, float outro_valor) {
if (um_valor > outro_valor) { return (um_valor); }
else { return (outro_valor);};
};
float menor( float um_valor, float outro_valor) {
if (um_valor < outro_valor) { return (um_valor); }
else { return (outro_valor);};
};
void main() {
int x;
float a=0,b=0,c =0;
float maior_de_todos, segundao, terceiro;
srand(time(NULL)); // should only be called once
x = 0 ;
do {
printf("\nOs valores correntes são \n A=%f,\n B=%f,\n C=%f \n",a,b,c);
printf("Digite\n 0 para sair \n 1 para ordem crescente \n");
printf(" 2 para ordem decrescente \n 3 para o maior no meio \n 4 para
informar novos valores\n");
printf(" 5 para o computador sortear 3 valores\n");
printf("Informe o valor de X ou tecle 0 para sair");
scanf("%i",&x);
if (x) {
maior_de_todos = maior(a,maior(b,c));
terceiro = menor(a, menor(b,c));
segundao = menor( menor( maior(b,c), maior(b,a)), menor(maior(a,c),maior(a,b)));
switch (x) {
case(1) :
// ordem crescente
printf("\nExibir em ordem crescente \n");
printf("%f < %f < %f \n",terceiro, segundao, maior_de_todos);
break;
case(2):
// ordem decrescente
printf("\nExibir em ordem decrescente \n");
printf("%f > %f > %f \n",maior_de_todos, segundao, terceiro);
break;
case(3):
// maior no meio
printf("\nExibir com o maior no meio\n");
printf("%f < %f > %f \n",terceiro, maior_de_todos, segundao);
break;
case(4):
// maior no meio
printf("Revalorando as variáveis A, B e C\n");
printf("Informe o valor de A");
scanf("%f",&a);
printf("Informe o valor de B");
scanf("%f",&b);
printf("Informe o valor de C");
scanf("%f",&c);
break;
case(5):
// cria novos valores aleatórios
printf("sorteando valores para A, B e C\n");
a = rand()%100-30; // -30 para dar números negativos
b = rand()%100-30;
c = rand()%100-30;
break;
default:
// mensagem de erro
printf("Lamento mas essa opção é inválida, tente 0 ou 1 ou 2 ou 3 ou 4
n");
}
}
}while (x);
}
Pode testá-lo aqui -> https://repl.it/@bokomoko/ordemde-3
/*
Faça um programa em C que leia 4 valores X, A, B e C onde
X é um número inteiro e positivo e A, B,e C são quaisquer valores reais.
O programa deve escrever os valores lidos e:
• se X = 1, escrever os três valores A, B e C em ordem crescente;
• se X = 2, escrever os três valores A, B e C em ordem decrescente;
• se X = 3, escrever os três valores A, B, e C de forma que o maior valor
ique entre os outros dois
• se X não for um dos três valores acima, dar uma mensagem indicando
sso.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
float maior( float um_valor, float outro_valor) {
if (um_valor > outro_valor) { return (um_valor); }
else { return (outro_valor);};
};
float menor( float um_valor, float outro_valor) {
if (um_valor < outro_valor) { return (um_valor); }
else { return (outro_valor);};
};
void main() {
int x;
float a=0,b=0,c =0;
float maior_de_todos, segundao, terceiro;
srand(time(NULL)); // should only be called once
x = 0 ;
do {
printf("\nOs valores correntes são \n A=%f,\n B=%f,\n C=%f \n",a,b,c);
printf("Digite\n 0 para sair \n 1 para ordem crescente \n");
printf(" 2 para ordem decrescente \n 3 para o maior no meio \n 4 para
informar novos valores\n");
printf(" 5 para o computador sortear 3 valores\n");
printf("Informe o valor de X ou tecle 0 para sair");
scanf("%i",&x);
if (x) {
maior_de_todos = maior(a,maior(b,c));
terceiro = menor(a, menor(b,c));
segundao = menor( menor( maior(b,c), maior(b,a)), menor(maior(a,c),maior(a,b)));
switch (x) {
case(1) :
// ordem crescente
printf("\nExibir em ordem crescente \n");
printf("%f < %f < %f \n",terceiro, segundao, maior_de_todos);
break;
case(2):
// ordem decrescente
printf("\nExibir em ordem decrescente \n");
printf("%f > %f > %f \n",maior_de_todos, segundao, terceiro);
break;
case(3):
// maior no meio
printf("\nExibir com o maior no meio\n");
printf("%f < %f > %f \n",terceiro, maior_de_todos, segundao);
break;
case(4):
// maior no meio
printf("Revalorando as variáveis A, B e C\n");
printf("Informe o valor de A");
scanf("%f",&a);
printf("Informe o valor de B");
scanf("%f",&b);
printf("Informe o valor de C");
scanf("%f",&c);
break;
case(5):
// cria novos valores aleatórios
printf("sorteando valores para A, B e C\n");
a = rand()%100-30; // -30 para dar números negativos
b = rand()%100-30;
c = rand()%100-30;
break;
default:
// mensagem de erro
printf("Lamento mas essa opção é inválida, tente 0 ou 1 ou 2 ou 3 ou 4
n");
}
}
}while (x);
}
Pode testá-lo aqui -> https://repl.it/@bokomoko/ordemde-3
meloadrielle:
não tem um código mais simples não,tem funções que a professora ainda não deu então não entendo e queria entender pelo menos o funcionamento dele
Perguntas interessantes
Filosofia,
8 meses atrás
Geografia,
8 meses atrás
Inglês,
8 meses atrás
Matemática,
1 ano atrás
Artes,
1 ano atrás