Ir para conteúdo

POWERED BY:

Arquivado

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

mariana.duarte

Matrizes e vetores

Recommended Posts

Gente... tô com um problema em uma questão, que o seguinte:

Deseja-se armazenar os dados relativos a 10 funcionários (nome e salário). Os dados serão armazenados em dois vetores:

os nomes dos funcionários são armazenados em um vetor bidimensional de caracteres, e seus salários,

em um vetor de valores reais (float). Índices iguais nos dois vetores indicam informações relativas ao mesmo funcionário.

Depois de lidos e armazenados os dados dos funcionários, o programa deve:

a) Escrever os dados lidos (nome e salário correspondente);

B) Escrever o nome de todos os funcionários que apresentam salário inferior à média salarial;

c) Escrever o maior e o menor salário pago na empresa (mostrar também nome dos funcionários)

d) Pedir para o usuário informar um nome de funcionário e o programa deverá mostrar o salário do mesmo.

 

main()

{

float salario[10],soma=0,media,salario_maior,salario_menor;

char nome[10][20];

int i;

 

for(i=0;i<10;i++)

{

printf("\nDigite seu salario:");

scanf("%f",&salario);

printf("\nDigite seu nome:");

scanf("%s",&nome);

 

}

for(i=0;i<10;i++)

printf("\n%f,%s",salario,nome);

for(i=0;i<10;i++)

{

soma=salario+soma;

}

media=soma/10;

printf("\nA media é:%f",media);

if(salario<media)

printf("\n%s",salario);

 

Ele roda certinho até a média... então, como devo fazer nessa parte seguinte?

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é um float coloque o "." nos valores.

 

media = soma/10.0;
printf("\nA media é:%f",media);

for(i=0;i<10;i++){
   if(salario[i]<media)
	  printf("\n%s",salario[i]);
}

Até a letra b está resolvido.

 

Para fazer a letra c faça o seguinte:

 

- Atribua a menor e maior o primeiro salário, ou seja, salario [0].

faça outro laço de 0 até 9 e faça os testes de menor e maior.

 

Para fazer a letra d é só ler um nome comparar com todos os nomes do vetor até encontra-lo, ai é só usar o mesmo índice para achar o salário.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver quase toda, só essa letra "d" que ainda estou tentando... Pode esclarecer um pouco melhor? Obrigada.

 

#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
	{
	float salario[5],soma=0,media,salario_maior=-1,salario_menor=99999;
	char nome[5][20],nome_maior[20],nome_menor[20];
	int i;
		  
	for(i=0;i<5;i++)
	{
	   printf("\nDigite seu salario:");									
	   scanf("%f",&salario[i]);
	   printf("\nDigite seu nome:");		 
	   scanf("%s",&nome[i]);
			 
	}
	for(i=0;i<5;i++)
	   printf("\n%f,%s",salario[i],nome[i]);
	for(i=0;i<5;i++)
	{
	   soma=salario[i]+soma;
	}  
	media=soma/5;
	printf("\nA media é:%f",media);
	for(i=0;i<5;i++)
	{
			if(salario[i]<salario_menor)
		  {
		  salario_menor=salario[i];
		  strcpy(nome_menor,nome[i]);
		  }
	   if(salario[i]>salario_maior)
		  {salario_maior=salario[i];
		  strcpy(nome_maior,nome[i]);
		  }
	 }
	 printf("\n%f,%s",salario_menor,nome_menor);
	 printf("\n%f,%s",salario_maior,nome_maior);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mariana,

 

Olha só se você declarar uma função que pega o nome e compara isso com o vetor, do qual você ja havia armazenado o tal nome fica bem mais facil.

 

int verifica(char n)
{
	clrscr();
	printf("Digite o nome do funcionario a ser pesquisado:\n");
	scanf("%s",&n);
	return(n);
}

Bom agora que você captou o nome você precisa testar com o vetor que você ja tem armazenado todos os outros nomes dentro da main

 

nas ultimas linhas do seu programa chame esta função verifica

verifica();
n=gets();
for(x=0;x<linha; ++x) {/*nao esqueça de declarar estas variaveis (x,y,n) na sua main*/
		for(y=0;y<coluna;++y) {
						for(j=0;j<linha;++j){
		 if(n==nome)
		 printf("\n\nO nome eh: %s e o salario eh: %f.",n,salario[j]);
			   }
		 }
}

Bom acho que agora você poderia verificar o nome digitado e comparar com o vetor...

 

Espero ter ajudado

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.