Ir ao conteúdo

C Código C: leia nomes de pessoas compostos por um prénome e sobrenome


Ir à solução Resolvido por Ansi C,

Posts recomendados

Postado

Fazer um programa em "C" que leia nomes de pessoas compostos por um prénome e um sobrenome separados por um espaço em branco e imprima:
- A lista de nomes em ordem alfabética do pré-nome;
- A lista de nomes em ordem alfabética de sobrenomes;
- O número médio de letras por nome.

Postado
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
main(){
      char nome[50],sobrenome[50],n[50];
      int i,j=0,x=0,tam,sei,aux=0;
      printf("Digite seu nome completo:");
      fflush(stdin);
      fgets(nome, 50, stdin);
	  nome[strlen(nome)-1] = '\0';	
      tam=strlen(nome);
 
      for (i=tam-1;nome[i]!=' ';i--){
        sobrenome[j]=nome[i];
        j++;
 
       }
      sobrenome[j] = '\0';
      sei=strlen(sobrenome);
      strrev(sobrenome);
      fflush(stdin);
 
      aux=tam-sei;
 
 
      for (i=0;i<aux;i++){
          n[x]=nome[i];
          x++;
        }    
      fflush(stdin);
      printf ("%s, %s", sobrenome, nome);   
 
      getch();
}  

 

adicionado 1 minuto depois

Não consigo entender como posso fazer
- A lista de nomes em ordem alfabética do pré-nome;
- A lista de nomes em ordem alfabética de sobrenomes;
- O número médio de letras por nome.

  • Solução
Postado

Nós não queremos lhe dar a resposta, as vezes alguns membros mesmo assim dão na forma de algoritmo narrativo, descritivo ou pseudocódigo. Como eu estou sem tempo então não posso lhe ajudar com muita coisa.

 

Percebo que o nome e o sobrenome são impressos separadamente no final, é o caso de lê na mesma técnica, ou seja, um de cada vez separadamente. Isso resume a leitura em 1 linha de código o que é muita coisa comparada a se fazer um "cabaré" por tão pouco.

 

char nome[42];	        // para salvar o primeiro nome
char sobrenome[150];	// para salvar o segundo nome

scanf (" %s%149[^\n]", nome, sobrenome);	// ler nome
printf ("%s, %s", nome, sobrenome);		// exibir nome

 

Com relação a segunda parte, planeja a solução de como faria para resolver você mesmo e não com programação, nesse caso é você papel e caneta: como seu cérebro resolve isso. Depois aplique a linguagem e faça perguntas mais objetivas.

  • 3 meses depois...
Postado

Eu fiz o código para resolver isso devo seguir a mesma apostila que tu causo querer me adiciona discord e me diz que é do Clube do Hardware podemos fazer os exerci-os juntos.

 

Discord: PedroOliveira#0962

 

#include <stdio.h>

#include <string.h>

int main(){

 

float media=0,soma=0;

int i=0,tam=20,j=0,dijitados=0;

char nomes[tam][20],aux[20];

char sobrenomes[tam][40],saux[40];

 

printf("Coloque a Lista de Nomes; Dijite FIM para sair.\n");

 

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

char tmpnomes[tam][20];

char tmpsobrenomes[tam][40];

printf("Nome %d: ",i+1);

scanf("%s%[^\n]s",&tmpnomes,&tmpsobrenomes);

setbuf(stdin, NULL);

if(strcmp(tmpnomes, "FIM") != 0)

{

dijitados++;

strcpy(nomes,tmpnomes);

strcpy(sobrenomes,tmpsobrenomes);

}

else{

break;

}

}

//organizar array em ordem alfabetica dos pre-nomes

for (i = 1; i < dijitados; i++) {

for (j = 1; j < dijitados; j++) {

if (strcmp(nomes[j - 1], nomes[j]) > 0) {

strcpy(aux, nomes[j - 1]);

strcpy(nomes[j - 1], nomes[j]);

strcpy(nomes[j], aux);

}

}

}

//organizar array dos sobrenomes

for (i = 1; i < dijitados; i++) {

for (j = 1; j < dijitados; j++) {

if (strcmp(sobrenomes[j - 1], sobrenomes[j]) > 0) {

strcpy(aux, sobrenomes[j - 1]);

strcpy(sobrenomes[j - 1], sobrenomes[j]);

strcpy(sobrenomes[j], aux);

}

}

}

 

//imprimir nomes

printf("\nA lista de nomes em ordem alfabética do pré-nome: \n");

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

printf("\n%s", nomes);

}

//imprimir sobrenomes

printf("\nA lista de nomes em ordem alfabética de sobrenomes: \n");

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

printf("%s\n", sobrenomes);

}

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

soma += strlen(nomes);

}

media = soma / dijitados;

printf("Numero medio de letras por nome: %.2f \n",media);

}

 

 

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!