Ir ao conteúdo

Posts recomendados

Postado

Leia uma lista de N pessoas de uma agenda incluindo NOME e TELEFONE de cada um. Após ler os dados o programa deve ordenar esta lista por NOME em ordem alfabética e imprimir a lista completa contendo o nome e o telefone das pessoas.

Codigo:

 

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

using namespace std;
int main()
{
char nome[100][30], aux[30], telefone[12];
int i = 0, n;

cout << "Quantas pessoas tem na lista?" << endl;
cin >> n;

for(i = 0; i < n; i++){
    cout << "Qual o nome da pessoa " << i + 1 << "?" << endl;
    fflush(stdin);
    fgets(nome, 30, stdin);

}

for(i = 0; i < n; i++){

    cout << "Qual o telefone da pessoa " << i + 1 << "?" << endl;
    fflush(stdin);
    fgets(telefone, 12, stdin);
}


    int j;

    for(j=1; j<n; j++)
    {
    strcpy(aux,nome[j]);
    i = j-1;
    while(i >= 0 && strcmp(nome, aux) > 0)
    {
    strcpy(nome[i+1],nome);
    i--;
    }
    strcpy(nome[i+1],aux);
    }


cout << "Os nomes das pessoas em ordem alfabetica eh:" << endl;
for(i = 0; i < n; i++)
{
    cout << nome;
}


for(i = 0; i < n; i++)
{
    cout << nome << "" << telefone;
}

cout << "" << endl;
system("pause");
return 0;
}

 

  • Curtir 1
Postado

@victorenderman    você esqueceu de colocar a posição do vetor nome , então seu código pode ser assim :

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

using namespace std;
int main(){
    char nome[100][30], aux[30], telefone[12];
    int i = 0, n;

    cout << "Quantas pessoas tem na lista?" << endl;
    cin >> n;

    for(i = 0; i < n; i++){
        cout << "Qual o nome da pessoa " << i + 1 << "?" << endl;
        fflush(stdin);
        fgets(nome[i], 30, stdin);
    }

    for(i = 0; i < n; i++){
        cout << "Qual o telefone da pessoa " << i + 1 << "?" << endl;
        fflush(stdin);
        fgets(telefone, 12, stdin);
    }
    int j;
    for(j=1; j<n; j++){
        strcpy(aux,nome[j]);
        i = j-1;
        while(i >= 0 && strcmp(nome[i], aux) > 0){
            strcpy(nome[i+1],nome[i]);
            i--;
        }
        strcpy(nome[i+1],aux);
    }
    cout << "Os nomes das pessoas em ordem alfabetica eh:" << endl;
    for(i = 0; i < n; i++){
        cout << nome;
    }
    for(i = 0; i < n; i++) {
        cout << nome << "" << telefone;
    }
    cout << "" << endl;
    system("pause");
    return 0;
}

 

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!