Ir ao conteúdo
  • Cadastre-se

Exercício de Revisão


migueldf

Posts recomendados

Desculpe pelas imagens de cabeça para baixo!

meu problema esta na primeira questão da foto , realmente nao sei responde ela!

Ja a segunda questão eu to desenvonvendo mais ou menus, mais esta indo !

Caso alguem possa me ajuda.

valeu

Bom Dia

/*   QUESTÃO 4typedef struct{        int mat;        char sexo;        float Salario;    }Empregado;   */#include <stdio.h>#include<string.h>//Procedimento TROCARvoid Trocar (int *A, int *{    int Aux;     Aux=*A;     *A=*B;    *B=Aux;}  //Procedimento Ordena Crescente Vetor de Inteirosvoid OrdenaCrescVetInt(int *V, int N){    int I, Trocou=1;     while(Trocou)     {    Trocou=0;          for(I=0;I<=(N-2);I++)              if(V[I] > V[I+1])              {   Trocar(&V[I],&V[I+1]);                  Trocou=1;              }     }}//Procedimento Recursivo Ordena Crescente Vetor de Inteirosvoid OrdenaRecCrescVetInt(int *V, int N){    int I;     if (N==1)          return;     else     {    for(I=0;I<=(N-2);I++)                if(V[I] > V[I+1])                     Trocar(&V[I],&V[I+1]);          OrdenaRecCrescVetInt(V,N-1);                  }}int main(){   const int qnt = 3;    int i,M=0,F=0;    float Media,Soma;    srand(time(NULL));//RANDOM    typedef struct{        int mat;        char sexo;        float Salario;    }Empregado;       Empregado Empr[qnt];    printf("------------ INFORME OS DADOS DOS EMPREGADOS -----------------");    for( i = 0; i<qnt; i++ ) {        printf("\n\n      Empregado %d\n", i+1);        Empr[i].mat= rand () % (9999-1000)+1;//RANDOM        Empr[i].Salario= rand () % (934619-89431+1)/10;//RANDOM        printf("\nMatricula:%d ", Empr[i].mat);        printf("\nSexo: ");        Empr[i].sexo = toupper(getchar());        printf("\nSalario R$:%0.2f ",Empr[i].Salario);        fflush(stdin);    }         printf("\n\n------------ IMPRIMINDO OS DADOS -----------------");    for( i = 0;i<qnt; i++) {        printf("\n\n      Empregado %d", i+1);               printf("\nMatricula: %d", Empr[i].mat);        printf("\nSexo: %c", Empr[i].sexo);        if(Empr[i].sexo == 'M')             M++;        else if(Empr[i].sexo == 'F')            F++;        printf("\nSalario: R$ %0.2f", Empr[i].Salario);        Soma=Soma+Empr[i].Salario;        Media=Soma/qnt;        fflush(stdin);           }       printf("\n\n------------ IMPRIMINDO MEDIA DOS SALARIO ---------------");    printf("\nMedia do Salario R$:%0.2f",Media);       printf("\n\n------------ IMPRIMINDO TOTAL DE HOMENS -----------------");     printf("\nTotal de Homens:%d",M);        printf("\n\n------------ IMPRIMINDO TOTAL DE MULHERES ---------------");    printf("\nTotal de Mulhrese:%d",F);       printf("\n\n----- IMPRIMINDO EM ORDEM CRESCENTE DE MATRICULA --------");    OrdenaCrescVetInt(Empr, i);    for(i=0; i<qnt; i++){       printf("\n\n------------ IMPRIMINDO OS DADOS -----------------");    for( i = 0;i<qnt; i++) {                printf("\n\n      Empregado ");               printf("\nMatricula: %d",Empr[i].mat);        printf("\nSexo: %c",Empr[i].sexo);        printf("\nSalario: R$ %0.2f",Empr[i].Salario);        //fflush(stdin);           }}    printf("\n\n----------------FIM----------------\nAperte qualquer tecla para sair!");    getch();    return 0;} 

Bom dia galerinha!

o codigo esta dando algo errado! dps que eu ordeno a primeira matricula e sexo , fica com valores diferentes da gerada, como se fosse lixo.

alguem pode ajuda?

Link para o comentário
Compartilhar em outros sites

pelo que eu vi ali é pra ordenar de acordo com a matricula certo?voce pode reescrever a função "OrdenaCrescVetInt" e "Trocar"  o argumento passado deve ser o tipo Empregado

Trocar(Empregado *A, Empregado * B ){    Empregado Aux; //Modifica pra empregado}void OrdenaCrescVetInt(Empregado *V, int N){                 if(V[I].mat > V[I+1].mat)//Testa a matricula                  Trocar(&V[I],&V[I+1]); //e troca os objetos}

voce tambem nao tinha inicializado a variavel soma

Link para o comentário
Compartilhar em outros sites

#include <stdio.h>// Função -  Recursivaint SomaRec(int n)  {      if(n==1)               return 1;      else               return( pow(n,2)+SomaRec(n-1));}  // Função -  Interativaint soma(int n){ int i=1,soma=0;   for(i=1;i<=n;i++)  soma+=i*i;  return soma;}// Função - Procedimento somaP(int n){ int i=1,somaP=0;   for(i=1;i<=n;i++)  somaP+=i*i;  return somaP;}int main(){    float n;    printf("Digite um inteiro positivo: ");    scanf("%f", &n);       printf("\n-----FUNCAO SOMA -----");    printf("\nSoma: %d\n", soma(n));       printf("\n-----PROCEDIMENTO -----");    printf("\nSoma:%d\n",somaP(n));       printf("\n-----RECUSIVIDADE -----");    printf("\nSoma: %d\n", SomaRec(n));    system("PAUSE");    return 0;   }

 Boa noite pessoal;

queria ajuda para ter a certeza que o código da primeira figura esta certo;

Link para o comentário
Compartilhar em outros sites

Galerinha a questa3(1ªimagem) Conseguir resolver.

 

alguem pode me ajuda na questa4(2ªimagem)

nao consigo gera aleatoriamente o sexo ;

typedef struct{        int mat;        char sexo;        float Salario;    }Empregado;

Criar um vetor de 30 empregados. Para cada empregado, gerar aleatoriamente a
Matricula (entre 1000-999), gerar aleatoriamente o Sexo ('M' ou 'F') e gerar
aleatoriamente o Salario (entre R$ 894,31 e R$ 9346,19 -todos com duas casas decimais);

Apos a criação do vetor, escrever os 3 dados de cada empregado, na ordem em que foram gerados.

Calcular e escreve a Média de Salário dos 30 empregados.

Verificar e escrever o total de Homens e o total de Mulheres.

Escrever os 3 dados de cada empregado, em ordem CRESCENTE de Matrícula.

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