Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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
  • 2 semanas depois...
Postado

@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
Postado

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;
}

 

  • Amei 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!