Ir ao conteúdo
  • Cadastre-se

C alguem consegue me ajudar ?


Posts recomendados

alguem consegue me ajudar ?

// Escreva um programa da forma

// mais otimizada possível que leia um conjunto de dados contendo nome, sexo, idade e o estado civil
// (1 - solteiro, 2 - casado e 3 - divorciado) de um grupo de 10 pessoas. Deve ser utilizado as técnicas
// de armazenamento de dados em vetores, estrutura de repetição para leitura e informação na tela, estruturas
//condicionais entre outras. Este programa deve ser executado infinitas vezes até que seja pressionado no final
// da repetição a letra s, além disso deve informar :1 Todos os dados de cada usuário em linhas
//Nome: Robernei sexo: masculino idade: 52
//Nome: Silvana sexo: feminino .....
//2 Média de idade das mulheres;
//3 média de idade dos homens;
//4 Estado civil que mais ocorreu entre os entrevistados

//5 Estado civil que menos ocorreu entre os entrevistadosA

 

nao consigo continuar

 

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

main(){
int contf,contm,idade,civil,sexo,estcivil;
char nome,participar;
int vetor[10];
contm=0;
contf=0;


for (int i=0; i<10; ++i){
printf("Digite seu nome por gentilza");
scanf ("%c",&nome);
printf("Digite sua idade");
scanf ("%i",&idade);
printf("Digite sua idade");
scanf ("%i",&idade);
printf("Digite seu sexo : 1=Masculino / 2=Feminino");
scanf ("%i",&sexo);
if (sexo=1){
contm<-contm+1;
}
if(sexo=2){
contf<-contf+1
}
printf("Digite seu estado civil :1 - solteiro, 2 - casado e 3 - divorciado ");
}
}

Link para o comentário
Compartilhar em outros sites

Precisa fazer um vetor de char para guardar uma string, do mesmo jeito que fez com a variável vetor de inteiro. Depois dentro do laço faça scanf("%s", nome), fazer o mesmo com os outros scanf dentro do laço, mas colocar o &. Para fazer comparação no if usa-se == para igualdade ou != para desigualdade. E para fazer atribuição a uma variável usa-se =, por exemplo int x = 10;.

Link para o comentário
Compartilhar em outros sites

String é um vetor de caracteres.

 

char nome[10][10]; é assim que deveria ser no seu código, na verdade. Neste exemplo guardará 10 nomes com 10 caracteres.

 

Então um exemplo seria assim:

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

int main()
{
    char nome[3][10]; // Guarda 3 nomes com 10 caracteres
    int idade[3];

    for(int c  = 0; c < 3; c++)
    {
        printf("Entre com nome: ");
        scanf("%s", nome[c]);
        printf("Entre com idade: ");
        scanf("%d", &idade[c]);
    }

    for(int c  = 0; c < 3; c++)
    {
        printf("Ola %s, sua idade e %d\n", nome[c], idade[c]);
    }
    return 0;
}

Só adaptar ao seu código.

Link para o comentário
Compartilhar em outros sites

eu preciso fazer uma matriz para armazenar o nome , mas ai como eu faço o vetor pra escolha do sexo e do estado civil ?

adicionado 4 minutos depois

cheguei aqui

 

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

main(){
    int
    char nome[10];
    int idade[10],sexo[10],civil[10];civilmais,civilmenos;
    float mediah;mediam;

    for(foi i==0,i>10,i++){
        printf("Digite seu nome por gentilza :");
        scanf ("%c",&nome);
        printf("Digite sua idade :");
        scanf ("%i",&idade);
    }
    

    }

adicionado 16 minutos depois

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

main(){
    int conth<-0
    int contm<-0
    int solt<-0
    int divor<-0
    int casado<-0
    char nome[10];
    int idade[10],sexo[10],civil[10];civilmais,civilmenos;
    float mediah;mediam;

    for(foi i==0,i>10,i++){
        printf("Digite seu nome por gentilza :");
        scanf ("%c",&nome);
        printf("Digite sua idade :");
        scanf ("%i",&idade);
        printf("Qual seu genero : 1-Masculino / 2- Feminino");
        scanf ("%i",&sexo);
        if (sexo==1){
            conth<-conth+1
        }
            if (sexo==2){
            contm<-contm+1
        }
        printf("Qual seu estado civil  : 1 - solteiro, 2 - casado e 3 - divorciado");
        scanf ("%i",&civil);
        if (civil==1){
            solt<-solt+1
        }
            if (civil==2){
            casado<-casado+1
        }
        if (civil==3){
            divor<-divor+1
        }
    }
    

    }

adicionado 22 minutos depois

eu preciso saber como extrair apenas a idade das mulheres pra realizar a media entre elas como eu faço isso ?

 

adicionado 36 minutos depois

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

main(){
    int conth<-0
    int contm<-0
    int solt<-0
    int divor<-0
    int casado<-0
    char nome[10];
    int idade[10],sexo[10],civil[10];civilmais,civilmenos;
    float mediah;mediam;

    for(foi i==0,i>10,i++){
        printf("Digite seu nome por gentilza :");
        scanf ("%c",&nome);
        printf("Digite sua idade :");
        scanf ("%i",&idade);
        printf("Qual seu genero : 1-Masculino / 2- Feminino");
        scanf ("%i",&sexo);
        if (sexo==1){
            conth<-conth+1;
        }
            if (sexo==2){
            contm<-contm+1;
        }
        printf("Qual seu estado civil  : 1 - solteiro, 2 - casado e 3 - divorciado");
        scanf ("%i",&civil);
        if (civil==1){
            solt<-solt+1;
        }
            if (civil==2){
            casado<-casado+1;
        }
        if (civil==3){
            divor<-divor+1;
        }
    }
    if(solt>casado && solt>divor{
          civilmais=solt;
    }
    if(casado>solt && casado>divor{
          civilmais=casado;
    }
    else{
        civilmais=divorciado;
    }
    if(solt<casado && solt<divor{
          civilmenos=solt;
    }
    if(casado<solt && casado<divor{
          civilmenos=casado;
    }
    else{
        civilmenos=divorciado;}

adicionado 37 minutos depois

eu preciso saber como extrair apenas a idade das mulheres pra realizar a media entre elas como eu faço isso?

Link para o comentário
Compartilhar em outros sites

Se você soubesse usar estrutura, poderia agrupar todas essas variáveis dentro da estrutura, assim ficaria mais fácil de fazer o código e mais legível de entender. E se soubesse fazer funções ajudaria muito mais.

 

Do jeito que está tentando fazer pode até funcionar, mas não é o recomendado.

Link para o comentário
Compartilhar em outros sites

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

int main(){
    int conth=0;
    int contm=0;
    int solt=0;
    int divor=0;
    int casado=0;
    int i;
    char nome[10];
    char escolha,a,s;
    int idade[10];
    int sexo[10];
    int civil[10];
    float mediah,mediam;
    
    
    
    
    
    
        printf("Gostaria de participar da nossa pesquisa ? Se sim digite ,a, se nao digite ,s,");
            scanf ("%c",&escolha);
            if (escolha==a){
    for( i==0;i>10;i++){
        printf("Digite seu nome por gentilza :");
        scanf ("%c",&nome);
        printf("Digite sua idade :");
        scanf ("%i",&idade);
        printf("Qual seu genero : 1-Masculino / 2- Feminino");
        scanf ("%i",&sexo);
        if (sexo==1){
            conth<-conth+1;
        }
            else if (sexo==2){
            contm<-contm+1;
        }
        printf("Qual seu estado civil  : 1 - solteiro, 2 - casado e 3 - divorciado");
        scanf ("%i",&civil);}
        if (civil=1){
            solt<-solt+1;
        }
            else if (civil==2){
            casado<-casado+1;
        }
        else if (civil==3){
            divor<-divor+1;
        }
    }
    for( i==0;i>10;i++){
        printf("%s %d %d %d", nome[0], idade[0], sexo[0], civil[0]);}

    if(solt>casado && solt>divor){
          printf("Estado civil mais entrevistado :solteiro ");
    }
    else if(casado>solt && casado>divor){
          printf("Estado civil mais entrevistado :casado ");
    }
    else if{
        printf("Estado civil mais entrevistado :divorciado ");
    }
    if(solt<casado && solt<divor){
         printf("Estado civil menos entrevistado :solteiro");}
    else if (casado<solt && casado<divor){
         printf("Estado civil menos entrevistado :casado");}
    else if{
        printf("Estado civil menos entrevistado :divorciado");}
        else if(escolha=s){
            return(0);}

Link para o comentário
Compartilhar em outros sites

Um exemplo seguindo a ideia do @allanxd seria assim:

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

#define clear system("clear");  // No Windows mude de "clear" para "cls"

int main() {
    struct Pessoa {
        char nome[15];
        char sexo;
        char estadoCivil;
        int idade;
    };

    const int quantidade = 10;

    char repetir = 'S';
    while (repetir == 'S') {
        struct Pessoa pessoas[quantidade];

        double mediaFeminino = 0.0;
        double mediaMasculino = 0.0;

        int quantidadeFeminino = 0;
        int quantidadeMasculino = 0;
        int ocorrenciaCasado = 0;
        int ocorrenciaSolteiro = 0;
        int ocorrenciaDivorciado = 0;

        char maiorOcorrencia = ' ';
        char menorOcorrencia = ' ';

        clear
        printf(">> Cadastro de Pessoas \n");
        for (int i = 0; i < quantidade; ++i) {
            printf("Nome: ");
            scanf(" %[^\n]s", pessoas[i].nome);

            printf("Sexo [ F / M ]: ");
            scanf(" %c", &pessoas[i].sexo);
            pessoas[i].sexo = toupper(pessoas[i].sexo);

            printf("Idade: ");
            scanf(" %i", &pessoas[i].idade);

            printf("Estado civil [ C / S / D ]: ");
            scanf(" %c", &pessoas[i].estadoCivil);
            pessoas[i].estadoCivil = toupper(pessoas[i].estadoCivil);

            // Acumula para calcular a média
            switch (pessoas[i].sexo) {
                case 'F':
                    mediaFeminino += pessoas[i].idade;
                    quantidadeFeminino += 1;
                    break;
                case 'M':
                    mediaMasculino += pessoas[i].idade;
                    quantidadeMasculino += 1;
                    break;
            }

            // Contabiliza as opções de estado civil
            switch (pessoas[i].estadoCivil) {
                case 'C':
                    ocorrenciaCasado += 1;
                    break;
                case 'D':
                    ocorrenciaDivorciado += 1;
                    break;
                case 'S':
                    ocorrenciaSolteiro += 1;
                    break;
            }
        }

        // Determinar maior ocorrência
        if (ocorrenciaCasado > ocorrenciaDivorciado) {
            if (ocorrenciaCasado > ocorrenciaSolteiro) {
                maiorOcorrencia = 'C';
            } else {
                maiorOcorrencia = 'S';
            }
        } else {
            if (ocorrenciaDivorciado > ocorrenciaSolteiro) {
                maiorOcorrencia = 'D';
            } else {
                maiorOcorrencia = 'S';
            }
        }

        // Determinar menor ocorrência
        if (ocorrenciaCasado < ocorrenciaDivorciado) {
            if (ocorrenciaCasado < ocorrenciaSolteiro) {
                menorOcorrencia = 'C';
            } else {
                menorOcorrencia = 'S';
            }
        } else {
            if (ocorrenciaDivorciado < ocorrenciaSolteiro) {
                menorOcorrencia = 'D';
            } else {
                menorOcorrencia = 'S';
            }
        }

        // Calcular média das idades
        mediaFeminino /= quantidadeFeminino;
        mediaMasculino /= quantidadeMasculino;

        printf("\n"
               ">> Exibir Relatório \n"
               "      Nome      | Sexo | EC | Idade \n"
               "----------------------------------- \n");
        for (int i = 0; i < quantidade; ++i) {
            printf("%15s |  %c   | %c  | %3i \n", pessoas[i].nome, pessoas[i].sexo, pessoas[i].estadoCivil, pessoas[i].idade);
        }

        printf("\n"
               ">> Ocorrências de Estado Civil \n");
        printf("    Casado: %i \n", ocorrenciaCasado);
        printf("Divorciado: %i \n", ocorrenciaDivorciado);
        printf("  Solteiro: %i \n\n", ocorrenciaSolteiro);
        printf("Maior Ocorrência: %c \n", maiorOcorrencia);
        printf("Menor Ocorrência: %c \n\n", menorOcorrencia);
        printf(" Média Feminino: %.2f \n", mediaFeminino);
        printf("Média Masculino: %.2f \n", mediaMasculino);

        if (getchar() == '\n') {
            getchar();
        }
        printf("Repetir [ S / N]: ");
        scanf(" %c", &repetir);
        repetir = toupper(repetir);
    }

    clear
    return 0;
}

 

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