Ir ao conteúdo
  • Cadastre-se

Duvida Exercícios C++ e português estruturado, Laço de Repetição e Vetor.


MicreiroAprendiz

Posts recomendados

Olá pessoal

Comecei na longa jornada para me tornar um programador este ano e encontrei alguns problemas no meu caminho, queria a ajuda de vocês para corrigir os exercícios que realizei e prestar um auxílio nos que não consegui resolver, obrigado pela atenção.

MicreiroAprendiz :lol:

Vamos aos Exercícios

C++, Exercícios sobre comandos IF,ELSE e Laços de Repetição(não é permitido usar Vetores):

Exercício 01) Crie um Programa que leia três números e escreva os números lidos em ordem crescente(suponha números diferentes).

minha resposta:

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int _tmain(int argc, _TCHAR* argv[])
{
int A, B, C, menor, medio, maior;
printf ("Entre com os valores de A, B e C\n");
scanf ("%i\n %i\n %i", &A, &B, &C);
if ((A != B ) && (A != C) && (B != C))
{
if ((A<= B ) && (A<= C) && (B<= C))
{
menor = A;
maior = C;
medio = B;
}
if ((A<= B ) && (A<= C) && (C<= B ))
{
menor = A;
maior = B;
medio = C;
}
if ((B<= A) && (B<= C) && (A<= C))
{
menor = B;
maior = C;
medio = A;
}
if ((B<= A) && (B<= C) && (C<= A))
{
menor = B;
maior = A;
medio = C;
}
if ((C<= A) && (C<= B ) && (B<= A))
{
menor = C;
maior = A;
medio = B;
}
if ((C<= A) && (C<= B ) && (A<= B ))
{
menor = C;
maior = B;
medio = A;
}
}
else
{
printf ("Os valores devem ser diferentes um do outro.\n");
}
printf ("Os valores em ordem crescente sao: \n %i \n %i \n %i.\n", menor, medio, maior);
system ("PAUSE");
return (0);
}


Exercício 02) Crie um Programa que leia o nome de cada funcionário, o ano de nascimento e o seu salário. No final antes do final do programa deverá ser apresentado:
A)Quantos Funcionários estão na faixa de 40 a 60 anos;
B)A Idade média das pessoas com salário superior a R$1.000,00;

Minha Resposta:
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
int nascimento,salário,funcionário=0,média;
char nome[50];

printf("Digite o salário do empregado: ",salário);
scanf("%d",&salário);


do {
printf("Digite o Nome do funcionário: ",nome);
gets(nome);
fflush(stdin);
printf("Digite o Ano de Nascimento: ",nascimento);
scanf("%d",&nascimento);
}
while(salário>= 0);

nascimento= nascimento - 2013;

if (nascimento > 40, nascimento < 60){
funcionário = funcionário + 1;

if (salário > 1000){
média = média + 1;
nascimento = (nascimento / média);}

printf("Faixa de 40 a 60 anos: %d",funcionários);
printf("Idade média: %d",nascimento);

return 0;
}

Exercício 03) Crie um Programa que leia o nome e a quantidade de peças vendidas por cada vendedor de uma loja com 45 vendedores.

No final do programa apresentar:

A) A maior quantidade de peças vendidas e o nome do funcionário que fez esta venda.

B) A menor quantidade de peças vendidas e o nome do funcionário que fez esta venda.

Não consegui fazer este exercício, quero alguma dica de por onde começar ou que linha de raciocínio devo seguir.

Exercício 04) Vetor em português estruturado: Dado os vetores(Latitude e Longitude) tabelados, ler uma latitude e uma longitude localizando o ponto no mapa

Ex de tabela:

Lat / long / Local

0º / 0º / Africa

45ºN / 0º / Inglaterra

45ºS /100º / Australia

Novamente, Obrigado pela atenção e pelo tempo um grande abraço

MicreiroAprendiz:lol:

1464902_10152056247334636_1643695785_n.jpg

Link para o comentário
Compartilhar em outros sites

Com relação ao exercício 01, vou dar algumas dicas:



int main(){
int A, B, C, menor, medio, maior;
printf ("Entre com os valores de A, B e C\n");
scanf ("%i\n %i\n %i", &A, &B, &C);
if ((A != B ) && (A != C) && (B != C)){
if ((A < B ) && (B < C)){
menor = A;
maior = C;
medio = B;
}
else if((A < C) && (C < B)){
menor = A;
maior = B;
medio = C;
}
else if ((B < A) && (A < C)){
menor = B;
maior = C;
medio = A;
}
else if ((B < C) && (C < A)){
menor = B;
maior = A;
medio = C;
}
else if ((C < B) && (B < A)){
menor = C;
maior = A;
medio = B;
}
else if ((C < A) && (A < B )){
menor = C;
maior = B;
medio = A;
}
}
else
printf ("Os valores devem ser diferentes um do outro.\n");
printf ("Os valores em ordem crescente sao: \n %i \n %i \n %i.\n", menor, medio, maior);
system ("PAUSE");
return (0);
}
#include <stdio.h>

1 - Essa linguagem é C e não C++.

2 - Bibliotecas desnecessárias, o algoritmo só necessita do stdio.h.

3 - Seu main esta escrito de forma errada e não necessita passar argumentos, o correto seria int main(){ }

4 - No enunciado já está supondo que os números sejam diferentes, portanto não necessita verificar.

5 - Como já fez verificação de igualdade no primeiro if então não necessita verificar igualdade nos outros.

6 - Você pode otimizar o código fazendo apenas duas verificações if ((A < B ) && (B < C)).

7 - Ainda na questão de otimização, ao invés de usar vários ifs aninhados você pode usar else if, assim evitaria fazer varias comparações desnecessária.

8 - Quando se possui apenas uma ação dentro do if ou else não necessita usar {}.

Bom, por enquanto é isso, como você está aprendendo com o tempo você pega o jeito, depois analiso os outros se ninguém se pronunciar por aqui.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...