Ir ao conteúdo
  • Cadastre-se

Outro Exercício de Programação em C


Jucy Jah

Posts recomendados

Ola pessoal, estou tentando realizar esse exercício e não consigo identificar o que esta de errado. 
Alguém pra orientar, estou aprendendo ? Obrigada 

 


2.Ler a idade, o sexo e a renda (número de salários mínimos) de N pessoas, efetuar o processamento
abaixo e mostrar os resultados na tela do computador:
 Do total de pessoas, o total de homens e o total de mulheres em porcentagem;
 A porcentagem de crianças (até 12 anos), adolescentes (entre 13 e 17 anos) e adultos (acima de 17
anos);
 A porcentagem de pessoas da classe C (até quatro salários mínimos), da classe B (entre cinco e
vinte salários mínimos) e da classe A (acima de vinte salários mínimos);
 A média de renda das pessoas.
Considere:
 Consistências:
o Variável idade: o valor deve ser maior que zero;
o Variável sexo: utilize ‘F’ para “Feminino” e ‘M’ para “Masculino” (letra maiúscula);
o Variável opção: utilize ‘s’ para “sim” e ‘n’ para “não” (letra minúscula);
 N pessoas:
o “Quer continuar S/N? ”.

 

            #include <stdio.h>
            #include <stdlib.h>
            #include <ctype.h>
            
            /*Ler a idade, o sexo e a renda (numeros de salarios) de N pessoas, efetuar o processamento abaixo e mostrar os resultados na tela do computador*/
            int main()
            {
                char sexo,pessoas, opcao;
                int idade, renda, acum_r=0, cont_r,acum_i=0,cont_i,acum_m=0, cont_m,acum_f=0, cont_f,cont_12,cont_17, cont_18,cont_c, cont_b, cont_a,
                    perc_m, perc_f;
            
                
                printf("\n Digite a quantidade de pessoas:");
                scanf("%d", & pessoas);
                
                do 
                {
                    system ("cls");
                    do 
                    {
                       printf("\n Digite sua idade:");
                       scanf("%d", & idade);
                       /*acum_i += idade;
                       cont_i++;*/
                       
                       if (idade <= 12)
                           cont_12++;
                          
                        if (idade >= 13 && idade <=17)
                            cont_17++;
                         
                        if (idade > 17)
                            cont_18++;
                                           
                    }  while (idade<=0);
                       
                   do           
                   {  printf("\n Digite seu sexo f/m:");
                      fflush(stdin);
                      scanf("%c", & sexo);
                      sexo =  toupper (sexo);    
                      
                      if (sexo== 'M')
                       {
                           acum_m += sexo;
                           cont_m ++;
                       }
                      
                      else
                         if (sexo=='F');
                      {
                          acum_f += sexo;
                          cont_f ++;
                      }    
                      
                   }  while (sexo != 'M' && sexo != 'F');  
 
        
                  do
                  {
                      printf("\n Digite a quantidade de salario minimos:");
                      scanf("%d", & renda);
                     /*acum_r += renda;
                     cont_r++;*/
                     
                     if (renda <= 4)
                         cont_c++;
                        
                   
                    if (renda >= 5 && renda <=20)
                        cont_b++;
                    
                          
                    if(renda > 20);
                       cont_a++;
                                    
                  } while (renda <=0);
                  
                 do
                 {
                     printf("\n Quer Continuar s/n:");
                     fflush(stdin);
                    scanf("%c", & opcao);
                 } while (opcao != 's' && opcao != 'n');
                 
            } while (opcao =='s');
            
           
                            
                printf("\n Total de Pessoas :%d%%", pessoas);
                printf("\n Quantidade de Homens:%d%%",cont_m);
                printf("\n Quantidade de Mulheres:%d%%",cont_f);
                printf("\n Quantidade de Criancas ate 12 anos:%d%%",cont_12);
                printf("\n Quantidade de Adolescentes entre 13 e 17 anos:%d%%",cont_17);
                printf("\n Quantidade de Adultos acima de 17 anos:%d%%",cont_18);
                printf("\n Quantidade de pessoas com classe C:%d%%",cont_c);
                printf("\n Quantidade de pessoas com classe B:%d%%",cont_b);
                printf("\n Quantidade de pessoas com classe A:%d%%",cont_a);
                
                system("pause >null");
        
                   
        }

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Jucy já    seu código está bom , faltou apenas o final mostrar os dados , e você colocou %% e deveria ser %d , e seu código com algumas modificações poderia ser assim  :

#define _WIN32_WINNT 0x501   // para usar graficos coloque -lgdi32 em setings / compiler / linker / other linkers Options no codeblocks
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define cls system("cls");
/*Ler a idade, o sexo e a renda (numeros de salarios) de N pessoas, efetuar o
  processamento abaixo e mostrar os resultados na tela do computador
*/
int main(){
    char sexo,opcao;
    int idade,renda,acum_r=0,cont_r,acum_i=0,cont_i,
        acum_m=0,cont_m=0,acum_f=0,cont_f=0,cont_12=0,
        cont_17=0,cont_18=0,cont_c=0,cont_b=0,cont_a=0,
        perc_m, perc_f,pessoas,cont=0;
    printf(" Digite a quantidade de pessoas : ");
    scanf("%d",&pessoas);
    do{
        cls
        do{
            printf(" Digite sua idade : ");
            scanf("%d",&idade);
        }while( idade <= 0 );
        if( idade <= 12 )
            cont_12++   ;
        else
            if( idade >= 13 && idade <= 17 )
                cont_17++                  ;
            else
                cont_18++                  ;
        printf("\n");
        do{
            printf(" Digite seu sexo F/M : ");
            fflush(stdin);
            scanf("%c",&sexo);
            sexo = toupper( sexo );
        }while( sexo != 'M' && sexo != 'F' );
        if( sexo == 'M' ){
                acum_m += sexo;
                cont_m++;
            }
            else
                if( sexo == 'F' ){
                    acum_f += sexo;
                    cont_f ++;
                }
        printf("\n");
        do{
            printf(" Digite a quantidade de salario minimos : ");
            scanf( "%d",&renda             );
        }while( renda <= 0                 );
        if( renda <= 4                     )
            cont_c++                   ;
        else
            if( renda >= 5 && renda <= 20  )
                cont_b++                   ;
            else
                cont_a++                   ;
        printf(" Quer Continuar S/N : "   );
        cont++;
    }while( toupper((char)getch() ) != 'N'  );
    //  não pediu a Quantidade
    printf("\n"                                                                );
    printf(" Total de Pessoas Pedidas -----------------------: %d\n",pessoas   );
    printf(" Total de Pessoas cadastradas -------------------: %d\n",cont      );
    printf(" Quantidade de Homens ---------------------------: %d\n",cont_m    );
    printf(" Quantidade de Mulheres -------------------------: %d\n",cont_f    );
    printf(" Quantidade de Criancas ate 12 anos -------------: %d\n",cont_12   );
    printf(" Quantidade de Adolescentes entre 13 e 17 anos --: %d\n",cont_17   );
    printf(" Quantidade de Adultos acima de 17 anos ---------: %d\n",cont_18   );
    printf(" Quantidade de pessoas com classe C -------------: %d\n",cont_c    );
    printf(" Quantidade de pessoas com classe B -------------: %d\n",cont_b    );
    printf(" Quantidade de pessoas com classe A -------------: %d\n",cont_a    );
    //  pediu a porcentagem
    printf("\n"                                                                );
    printf(" Total de Pessoas Pedidas -----------------------: %d\n",pessoas   );
    printf(" Total de Pessoas cadastradas -------------------: %d\n",cont      );
    printf(" Porcentagem de Homens --------------------------: %.2f %\n",(float)cont_m *100/cont);
    printf(" Porcentagem de Mulheres ------------------------: %.2f %\n",(float)cont_f *100/cont);
    printf(" Porcentagem de Criancas ate 12 anos ------------: %.2f %\n",(float)cont_12*100/cont);
    printf(" Porcentagem de Adolescentes entre 13 e 17 anos -: %.2f %\n",(float)cont_17*100/cont);
    printf(" Porcentagem de Adultos acima de 17 anos --------: %.2f %\n",(float)cont_18*100/cont);
    printf(" Porcentagem de pessoas com classe C ------------: %.2f %\n",(float)cont_c *100/cont);
    printf(" Porcentagem de pessoas com classe B ------------: %.2f %\n",(float)cont_b *100/cont);
    printf(" Porcentagem de pessoas com classe A ------------: %.2f %\n",(float)cont_a *100/cont);
    printf("\n"                                                                );
    system("pause"                                                             );
    return 0                                                                    ;
}

 

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@Jorge Curvelo    esse gráfico aqui :

/*
    coloque isso      ->  -lgdi32
    no codeblocks em  ->  setting/compiler/linker settings/other links options
*/
#define _WIN32_WINNT 0x0600
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <locale.h>
#include <windows.h>
#define H GetStdHandle(STD_OUTPUT_HANDLE)
#define pi 3.141592
#define SEN sin(n*pi/180)
#define COS cos(n*pi/180)
#define cls ;system("cls");InvalidateRect(csl,NULL,TRUE);
void girar_M_Thor( int _fx  );
void grafico(               );
int _x,_y,j,i,_fx            ;
char verifica[50], recebe[50];
HWND     csl;
HDC      hdc;
COLORREF cor,cor_fundo;
POINT    pt[4];
HBRUSH   NewBrush;
RECT     rect1;
void init_graph(){/* colocar no inicio de cada programa , para pegar o console */
    cor       = RGB(255,255,0);
    cor_fundo = RGB(5,255,250);
    csl       = GetConsoleWindow();
    hdc       = GetDC(csl);
    NewBrush  = CreateSolidBrush(cor_fundo);
    SelectObject(hdc,NewBrush);
    //setlocale(LC_ALL,"portuguese");
}
typedef enum{black,blue,green,cyan,red,magenta,brown,lightgray ,darkgray,
lightblue,lightgreen,lightcyan,lightred,lightmagenta,yellow,white}colors;
void textcolor_2(int _l, int _f){SetConsoleTextAttribute(H,_l+(_f<<4)) ;}
void gotoxy_2(int Mx,int My){SetConsoleCursorPosition(H,(COORD){Mx,My});}
int som(int Mf){Beep(Mf,150);}
void pix(float sn,float cs,int h2, COLORREF cor){
    int w2,i2;
    for(w2=0;w2<h2;w2++)
        for(i2=0;i2<h2;i2++)
            SetPixel(hdc,sn+w2,cs+i2,cor);      /* desenha um ponto com grossura h2           */
}
void oval(int Mk ,int Ml,int Mth,int Mtv,
          int Mh,COLORREF cor          ){       /* coluna linha inicial ,tam horiz tam vertic */
    float sn,cs                         ;       /* grossura do traço                          */
    int n                               ;
    if(Mh<1)Mh=1;else if(Mh>10)Mh=10    ;
    for( n = 0; n<360; n++             ){       /* SEN e COS está nos define                  */
        sn = SEN * Mth + Mk             ;       /* coluna da tela (640) Pixeis                */
        cs = COS * Mtv + Ml             ;       /* linha da tela  (400) Pixeis                */
        pix(sn,cs,Mh,cor);
    }
}
void drawline(float x,float y,float x_f,
              float y_f,int Gr,COLORREF cor){
    float dx = x_f - x, dy = y_f-y, steps,Mk;
    if(abs(dx)  > abs(dy))steps=abs(dx     );
    else steps  = abs(dy)    ;
    float inc_x = dx / steps ;
    float inc_y = dy / steps ;
    for(Mk=0; Mk<steps; Mk++){
        x += inc_x ;
        y += inc_y ;
        pix(x,y,Gr,cor);
    }
}
void rect( int   k,int l,int tmh,int tmv, int hg,
           int Pre,COLORREF cor                ){   /* koluna Linha tam_H tam_V Grossura do traço */
    drawline(k    ,l    ,  k+tmh,l      ,hg,cor);
    drawline(k    ,l+tmv,  k+tmh,l+tmv  ,hg,cor);
    drawline(k    ,l    ,  k    ,l+tmv  ,hg,cor);
    drawline(k+tmh,l    ,  k+tmh,l+tmv  ,hg,cor);
    SetPixel(hdc,k,l    ,  cor                 );
    float j,i                                   ;
    if(Pre != 0                                ){
        for(j=k+hg;j<k+tmh;j++                  )
            for(i=l+hg;i<l+tmv;i++              )
                SetPixel(hdc,j,i,cor_fundo     );
    }
}
void gotoYX(int x, int y    ){
    SetConsoleCursorPosition (
    H , ( COORD ) { x , y  });
}
int main(){
    init_graph(            );
    grafico(               );
    while( ! kbhit( )      ){
        girar_M_Thor( _fx  );
        _fx += 6            ;
        if( _fx > 360       )
            _fx = 000       ;
    }
    textcolor_2(7,0);
    return 0;
}
void grafico(                              ){
    int fx,x,y,x1,y1,ax                     ;
    cor = RGB(255,255,255                  );
    for(fx=0; fx<361; fx+=5                ){
        //ax = (fx*3.141591)/180            ;
        x  = cos(fx*3.141591/180)*101+700   ;
        y  = sin(fx*3.151591/180)*101+240   ;
        x1 = cos(fx*3.141591/180)*189+700   ;
        y1 = sin(fx*3.141591/180)*189+240   ;
        drawline( x,y,x1,y1,1,cor          );
        cor = RGB(255,255,0                );
        pix(x ,y ,6,cor                    );
        pix(x1,y1,6,cor                    );
        Sleep(  1                          );
    }
}
void girar_M_Thor(    int _fx                ){
    int x,y,x1,y1,w,C=0,vx[100][2]            ;
    x1 = cos((_fx+30)*3.141591/180)*60+700    ;
    y1 = sin((_fx+30)*3.141591/180)*60+240    ;
    x = x1;   y = y1                          ;
    cor = RGB(255,255,0                      );
    drawline( 700,240,x1,y1,2,cor            );
    cor = RGB(255,2,0                        );
    for(w=_fx; w<_fx+60; w++                 ){
        vx[C][0] = cos(w*3.141591/180)*60+700 ;
        vx[C][1] = sin(w*3.141591/180)*60+240 ;
        pix(vx[C][0],vx[C][1],4,cor          );
        C++                                   ;
    }
    Sleep(     20                            );
    cor = RGB (0         ,0   ,0             );
    drawline  (700       ,240 ,x,y  ,4, cor  );
    pix       (vx[0][0]-2,vx[0][1]-2,8, cor  );
}

1391413244_lgdicblocks.thumb.jpg.4732ecc28896526f653b757843d4c5eb.jpg

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Só passando para deixar minha contribuição...:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

typedef struct {
    char sexo;
    int idade;
    int renda;
} Pessoa;

int main() {
    int totalPessoas = 0;

    double porcentagemHomens = 0.0;
    double porcentagemMulheres = 0.0;

    double porcentagemCriancas = 0;
    double porcentagemAdolescentes = 0;
    double porcentagemAdultos = 0;

    double porcentagemClasseA = 0.0;
    double porcentagemClasseB = 0.0;
    double porcentagemClasseC = 0.0;

    double mediaRenda = 0.0;

    char opcao = 's';

    Pessoa pessoa;

    while (opcao == 's') {
        pessoa = (Pessoa) {0, ' ', 0};

        do {
            printf("Digite o sexo [ F / M ]: ");
            scanf(" %c%*c", &pessoa.sexo);
            pessoa.sexo = _toupper(pessoa.sexo);
        } while (pessoa.sexo != 'F' && pessoa.sexo != 'M');

        do {
            printf("Digite a idade: ");
            scanf(" %i%*c", &pessoa.idade);
        } while (pessoa.idade < 0);

        do {
            printf("Digite a renda (quantidade de salarios minimos): ");
            scanf(" %i%*c", &pessoa.renda);
        } while (pessoa.renda < 0);

        if (pessoa.sexo == 'F') {
            porcentagemMulheres += 1;
        } else {
            porcentagemHomens += 1;
        }

        if (pessoa.idade <= 12) {
            porcentagemCriancas += 1;
        } else if (pessoa.idade <= 17) {
            porcentagemAdolescentes += 1;
        } else {
            porcentagemAdultos += 1;
        }

        if (pessoa.renda <= 4) {
            porcentagemClasseC += 1;
        } else if (pessoa.renda <= 20) {
            porcentagemClasseB += 1;
        } else {
            porcentagemClasseA += 1;
        }

        mediaRenda += pessoa.renda;
        totalPessoas += 1;

        printf("Continuar? [ S / N ]: ");
        scanf(" %c%*c", &opcao);
        opcao = _tolower(opcao);
    }

    porcentagemMulheres = porcentagemMulheres * 100 / totalPessoas;
    porcentagemHomens = porcentagemHomens * 100 / totalPessoas;

    porcentagemCriancas = porcentagemCriancas * 100 / totalPessoas;
    porcentagemAdolescentes = porcentagemAdolescentes * 100 / totalPessoas;
    porcentagemAdultos = porcentagemAdultos * 100 / totalPessoas;

    porcentagemClasseA = porcentagemClasseA * 100 / totalPessoas;
    porcentagemClasseB = porcentagemClasseB * 100 / totalPessoas;
    porcentagemClasseC = porcentagemClasseC * 100 / totalPessoas;

    mediaRenda /= totalPessoas;

    printf("--------------------------------------- \n");
    printf("    Porcentagem de mulheres: %.2f%% \n", porcentagemMulheres);
    printf("      Porcentagem de homens: %.2f%% \n\n", porcentagemHomens);

    printf("    Porcentagem de criancas: %.2f%% \n", porcentagemCriancas);
    printf("Porcentagem de adolescentes: %.2f%% \n", porcentagemAdolescentes);
    printf("     Porcentagem de adultos: %.2f%% \n\n", porcentagemAdultos);

    printf("    Porcentagem de classe A: %.2f%% \n", porcentagemClasseA);
    printf("    Porcentagem de classe B: %.2f%% \n", porcentagemClasseB);
    printf("    Porcentagem de classe C: %.2f%% \n\n", porcentagemClasseC);

    printf("             Media de renda: %.2f \n", mediaRenda);
    printf("--------------------------------------- \n");

    return EXIT_SUCCESS;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!