Ir para conteúdo
Fórum Script Brasil
  • 0

Poblema com Questão


Leonardo Prass

Pergunta

 Criar um programa que leia o nome de pessoas e a sua profissão. Quando o usuário digitar “fim” no campo nome, o programa deve terminar. Ao terminar escrever o número de advogados cadastrados. Exemplo de tela de saída: Nome: Fernando Profissão: professor Nome: Luiz Profissão: advogado Nome: Marcos Profissão: advogado Nome: Ana Profissão: dentista Nome: fim O número de advogados cadastrados é 2.

basicamente eu quero que ele reconheca profissao digitada e se for advogado ele some o total e se for professor so imprima quando digitar fim.

Qualquer coisa q você digita ele considera como advogado.

e quanda digita fim ele finaliza mais antes ele pede para escrever a profissao como eu posso resolver isso? segue abaixo o meu codigo.

#include<iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main(){
 
    char nome [100];
    char prof [100]  ;
    int advogados;
do{
    cout<<"\nDigite Seu Nome: ";
    cin>>nome;
 
    cout<<"\nDigite Sua Profissao:";
    cin>>prof;
 cout<< "\nNome:" <<nome;
  cout<<"\nProfissao: " <<prof<< "\n";
 
  }while (strcmp(nome , "fim"));
if  ( !strcmp(prof, "advogado") ){advogados++;} {
cout<<"Numero de Advogados: " <<advogados<< "\n";}}
 

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
#include <iostream>
#include <string.h>
using namespace std;

struct Datos {
    char nome [100];
    char prof [100];
};

int main () {
    Datos lista[100]={0};
    
    int i = 0;
    do{
        cout << "\nDigite Seu Nome: ";
        cin >> lista [i].nome; cin.ignore();
        
        if ( strcmp( lista[i].nome, "fim") != 0 ){
            cout << "\nDigite Sua Profissao: ";
            cin >> lista [i].prof; cin.ignore();
            i++;
        }
        
    }while(  i<100 && (strcmp( lista[i].nome, "fim") != 0)  );
    
    
    cout << "mostrando resultados..." << endl << endl;
    
    int advogados = 0;
    int x = 0;
    if ( strcmp( lista[x].prof, "advogado") == 0 ){
        cout << "Nome: " << lista[x].nome << " Profissao: " << lista[x].prof;
        advogados++;
    }
    for( x++; x<i; x++ ){
        if ( strcmp( lista[x].prof, "advogado") == 0 ){
            cout << ", Nome: " << lista[x].nome << ", Profissao: " << lista[x].prof;
            advogados++;
        }
    }
    cout << "Numero de advogados: " << advogados << endl;
    
    cin.ignore();
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • 0

Um struct é como um array, porem um array esta obrigado a armazenar tipos de dados iguais, a estrutura serve para armazenar tipos de dados diferentes.

cin.ignore(); evita erros logo após tomar um string por teclado, os erros geralmente são produzidos pela tecla enter que pulsamos al final de ler um string. Já o cin.ignore() no final do programa atua de pausa. ;) (truquinos ihihihi)

Datos lista[100]={0}; é como um array de inteiros, porem em ves de ser de inteiros, ele é de estruturas. =O

while(  i<100 && (strcmp( lista.nome, "fim") != 0)  ); é como dizer ao programa.... porenquanto que i seja menor que 100 e lista.nome seja diferente de "fim" repetir e repetir XD

São conceitos um pouco avançados, porem isso tudo você começa entender quando você lidar com estruturas, as estruturas são boas para agrupar dados sobre um mesmo objetivo comum.... Por exemplo eu tenho uma estrutura chamada dados, nesse dados eu guardo os dados que possa ter uma pessoa, telefone, nome, rua etc....

struct dados{
int telefone;
char nome[30];
char rua[50];
};

Isso agrupa dados de um individo. Agora eu posso fazer assim:

dados Manuel;
//e posso guardar os dados do suposto manuela
Manuel.telefone = 952847438;
strcpy ( Manuel.nome, "Manuel Apolonio");
strcpy ( Manuel.rua, "Rua Longa");

//Posso criar quantos dados eu quiser
dados Elena;
dados Pedro;
...

Ou....

dados agenda[100]; // Isso pode ser uma agenda de 100 contatos, cada uma delas com seus respectivos dados de telefone, nome e rua.

Agora eu faria...

agenda[0].telefone = 12313123;
strcpy ( agenda[0].nome, "Manuel Apolonio");
strcpy ( agenda[0].rua, "Rua Quebrada");

E posso fazer isso até agenda[99].telefone=......

A maior vantagem é que as estruturas guardam diferentes tipos de dados. ;)

C/C++ são maravilhosos não é? =)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...