Ir ao conteúdo

Correção de 3 programas em C???


danthon42

Posts recomendados

Postado

Estou precisando que alguem corrija os codigos de 3 programas de um exercício,somente estes não estou conseguindo fazer funcionar,se alguem puder corrigi-los.

Problema1

Uma pesquisa sobre características físicas da população de uma determinada região coletou os seguintes dados referentes a cada habitante, para serem analisados:

- sexo (Masculino, Feminino);

- idade (em anos);

- cor dos cabelos (louros, castanhos, pretos).

Faça um programa utilizando a estrutura de repetição WHILE que determine e escreva:

• a maior idade dos habitantes;

• a quantidade de indivíduos do sexo feminino com idade entre 15 e 35 anos;

• a quantidade de indivíduos que tenham cabelos louros.

Obs.: O último indivíduo terá idade –1, e o programa deverá parar e imprimir os resultados.

este foi o codigo que desenvolvi:

#include <studio.h>

#define N 4 /* tamanho maximo linhas */

#define N 3 /* tamanho maximo colunas */

main(){

int i, j;

int nome = 0;

int sexo = 1;

int idade = 2;

int cor_cabelos = 3;

/*declara matriz bidimensional */

char caracteristicas[N][N];

/* insere dados na matriz */

for(i=0; i<N; i++){

for(j=0; j<N; j++) {

se (j==0)

printf("Digite o nome:\n");

gets(caracteristicas(i,j));

else

se (j==1)

printf("Digite o sexo:\n");

gets(caracteristicas(i,j));

else

se (j==2)

printf("Digite a idade:\n");

gets(caracteristicas(i,j));

else

se (j==3)

printf("Digite a cor dos cabelos:\n");

gets(caracteristicas(i,j));

int maior_idade = 0;

/* le os dados e calcula maior idade */

for(i=0; i<N; i++){

for(j=2; j<3; j++) {

while (j==2) {

se (caracteristicas(i,j) > maior_idade)

maior_idade == caracteristicas(i,j);

}

}

}

/* le os dados e calcula quantidade de mulheres entre 15 e 35 anos */

int j_sexo = 1;

int j_idade = 2;

int cont = 0;

int quant_fem_15_35 = 0;

for(i=0; i<N; i++){

while (cont<5) {

se (caracteristicas(i,j_sexo) == 'feminino') &&

(caracteristicas(i,j_idade) >= 15) &&

(caracteristicas(i,j_idade) <= 35)

quant_fem_15_35++;

}

}

/* le os dados e calcula a quantidade de cabelos loiros */

int quant_cabelos_loiros;

for(i=0; i<N; i++){

for(j=3; j<4; j++) {

while (j==3) {

se (caracteristicas(i,j) == 'loiro')

quant_cabelos_loiros++;

}

}

}

/* imprime na tela a maior idade, quantidade de individuos

do sexo feminino com idade entre 15 e 35 e

a quantidade de individuos de cabelos loiros */

printf("A maior idade e': %d, maior_idade.\n");

printf("A quantidade de mulheres com idade entre 15 e 35 e': %d, quant_fem_15_35.\n");

printf("A quantidade de individuos de cabelos loiros e': %d, quant_cabelos_loiros.\n");

return 0;

}

Problema 2:

Um comerciante deseja fazer o levantamento do lucro das 10 mercadorias que ele comercializa. Para isto mandou digitar uma linha para cada mercadoria com o nome, preço de compra (PC) e preço de venda (PV) das mesmas.

Fazer um programa utilizando a estrutura de repetição FOR que:

a) determine e escreva quantas mercadorias proporcionam:

- lucro < 10%;

- 10% < = lucro < = 20%;

- lucro > 20 %

B) determine e escreva o valor total de compra e de venda de todas as mercadorias, assim como o lucro total;

Obs.: Adote um flag (uma condição) para encerrar o programa;

Regra: lucro= 100*[(PV-PC)/PC]

este foi o codigo que desenvolvi:

#include <studio.h>

#define N 2 /* tamanho maximo colunas */

main(){

int i, j;

int nome = 0;

int pc = 1;

int pv = 2;

int quant_produtos = 0;

/*declara matriz bidimensional */

char produtos[quant_produtos][N];

/* insere dados na matriz */

for(i=0; i<quant_produtos; i++){

for(j=0; j<N; j++) {

se (j==0)

printf("Digite o nome do produto:\n");

gets(produtos(i,j));

else

se (j==1)

printf("Digite o preco de compra:\n");

gets(produtos(i,j));

else

se (j==2)

printf("Digite o preco de venda:\n");

gets(produtos(i,j));

/* le e calcula quantos produtos tem para cada situacao de lucro */

float lucro = 0;

float quant_lucro_menor_10 = 0;

float quant_lucro_entre_10_20 = 0;

float quant_lucro_maior_20 = 0;

for(i=0; i<quant_produtos; i++) {

for(j=0; j<N; j++) {

lucro = 100*[((produtos(i,pv)-(produtos(i,pc))/(produtos(i,pc)];

se (lucro<10)

quant_lucro_menor_10++;

else

se (lucro>=10) && (lucro<=20)

quant_lucro_entre_10_20++;

else

se(lucro>20)

quant_lucro_maior_20++;

}

}

/* Mostra na tela a quantidade de produtos em cada situacao acima sitada */

printf("A quantidade de produtos que obtiveram em lucro abaixo de 10% foi de: %f, quant_lucro_menor_10\n\n);

printf("A quantidade de produtos que obtiveram em lucro de 10% 'a 20% foi de: %f, quant_lucro_entre_10_20\n\n);

printf("A quantidade de produtos que obtiveram em lucro acima de 20% foi de: %f, quant_lucro_entre_10_20\n\n);

return 0;

}

Problema 3:

Construa um programa para calcular e mostrar:

a) a soma de 5 primeiros números fornecidos como entrada.

B) o produto de 5 números fornecidos como entrada.

c) a soma de vários números fornecidos como entrada. Quando a soma ultrapassar 120 o programa deve ser finalizado.

Obs: O último número digitado será 999. Utilize uma função para o item a, outra função para o item b.

este foi o codigo que desenvolvi:

#include <stdio.h>

int soma_cinco_numeros(int soma);

int produto_cinco_numeros(int soma);

int soma_ numeros_limite(int soma);

main(){

double opcao;

printf("Letra '1' para somar 5 nu'meros.\n");

printf("Letra '2' para multiplicar 5 nu'meros.\n");

printf("Letra '3' para somar os nu'meros com limite ate' 120.\n")

printf("Escolha a sua opcao:");

scanf("%d", &opcao);

switch (opcao) {

case 1: soma_cinco_numeros(soma); break;

case 2: produto_cinco_numeros(soma); break;

case 3: soma_numeros_limite(soma); break;

default: printf("Opcao invalida");

return 0;

}

/* *******************************************************************

/* Função soma cinco números */

******************************************************************* */

int soma_cinco_numeros(int soma)

{

int soma = 0;

int num = 0;

int cont = 0;

do {

printf("Digite o nu'mero a ser somado.\n");

scanf("%f", &num);

soma = soma + num;

cont ++;

}

while (cont < 5);

printf("O valor da soma foi de: %f , soma);

}

/* *******************************************************************

Função multiplica cinco números

******************************************************************* */

int produto_cinco_numeros(int soma)

{

int soma = 0;

int num = 0;

int cont = 0;

do {

printf("Digite o nu'mero a ser somado.\n");

scanf("%f", &num);

soma = soma + num;

cont ++;

}

while (cont < 5);

printf("O valor da soma foi de: %f , soma);

}

/* *******************************************************************

/* Função soma até limite */

******************************************************************* */

int soma_ numeros_limite(int soma);

{

const float limite = 120;

float num = 0;

float soma = 0

while (num <= 120){

printf("Digite um nu'mero a ser somado ou -1 para sair:\n");

scanf("%f", &num);

if(num == -1) break;

soma = soma + num;

}

printf("O total da soma foi %f, soma);

}

Postado

sua Função multiplica cinco números

contém um erro de lógica.

você só copiou o de somar e esqueceu de trocar os operadores +por *

e você vai ter que salvar o produto dentro do laço, fazendo desse jeito ficaria errado pois qualquer numero multiplicado por zero é zero, então você tem que inicializar a multiplicação com o elemento neutro da multiplicação que é o numero 1.

Função soma limite contém outro erro de lógica na condição de parada.

o resto nao olhei.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!