Jump to content
Fórum Script Brasil
  • 0

Poblema com Questão


Leonardo Prass
 Share

Question

 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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...