Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

arandoble

[Resolvido] O mais novo é o mais velho em C

Recommended Posts

tenho que resolver este exercício mas sou iniciante em linguagem C e peço ajuda para resolver o problema.

 

Há um arquivo.h é um main.c O arquivo.h lê três blocos de notas, um de entrada, um com a resposta e o de saída. O arquivo.h compara a saída com a resposta para vê se está certo. O main.c é responsável em "resolver o problema", que no meu caso é um algoritmo para achar o mais novo e o mais velho da lista.

 

questão 18)Seleção da pessoa mais nova e da pessoa mais velha em uma lista.

 

A Entrada

Consiste de uma lista de idade e nome. Cada linha do arquivo de entrada contém um inteiro, que é a idade, e um nome com até 30 caracteres, que é o primeiro nome de uma pessoa. A idade e o nome estão separados por um espaço.

 

A saída

O arquivo de saída consiste de apenas duas linhas na primeira linha tem-se a idade e o nome da pessoa mais nova da lista do arquivo de entrada e na segunda linha a idade e o nome da pessoa mais velha da lista. A idade e o nome devem estar separados por um espaço.

 

Exemplo de Entrada

19 Jorginiaureo

20 Cris

24 Sergio

33 Jesus

40 Laila

47 Carlos

26 Eva

29 Daniel

12 Mario

15 Claudio

17 Marcelo

 

Exemplo de Saída

12 Mario

47 Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mal, mas arquivo com terminação .h não tem implementação de código. Você coloca os protótipos no .h e declarações extern de dados, enquanto no .c você implementa e define esses dados.

 

Aí no main.c você chama as funções declaradas no .h, incluindo ele.

 

O que você já fez?

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mal, mas arquivo com terminação .h não tem implementação de código. Você coloca os protótipos no .h e declarações extern de dados, enquanto no .c você implementa e define esses dados.

 

Aí no main.c você chama as funções declaradas no .h, incluindo ele.

 

O que você já fez?

 

 

 

Abraços :D

 

 

Devo ter me expressado errado mas é isso mesmo. Porem o que eu preciso mesmo é de um algoritmo que mostre a pessoa mais nova e a mais velha de uma lista (questão 18). Se você poder me ajudar desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vamos fazer o dever para você, vamos te ajudar em suas dúvidas. Então volto a repetir:

 

O que você já fez?

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vamos fazer o dever para você, vamos te ajudar em suas dúvidas. Então volto a repetir:

 

 

 

 

 

Abraços :D

 

#include <stdio.h>
#include <stdlib.h>
#define TAM 3

int main(int argc, char *argv[])
{
 int idade[TAM], i=0, menor=0, maior=0;
 char nome[30];

   while(i<TAM){
               printf("Dig. um idade e nome:");
               scanf("%d %s", &idade[i], &nome);
    if(i==0){
             menor=idade[i];
             maior=idade[i];
             }else{
                   if(idade[i]>maior){
                                      maior=idade[i];
                                      }
                   else if(idade[i]<menor){
                                           menor=idade[i];
                                           }
                                           }
                                           i++;
                                           }
             //fprintf(saida, "%i %s \n", idade, nome);
             printf("\nidade: %d %s\n", menor, nome);
             printf("idade: %d %s\n\n", maior, );
 system("PAUSE");	
 return 0;
}

 

ele verifica a maior e a menor idade mas não mostra como deveria o nome de cada um.

entrada:

18cris

20pedro

10carl

 

como está saindo:

maior: 20pedro

menor10pedro

 

como DEVERIA sair:

maior: 20pedro

menor: 10carl

 

peço ajuda para concertar o erra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 3

int main(void)
{
int idade[TAM], i, menor = 0, maior = 0;
char nome[30], menor_string[30], maior_string[30];

for(i = 0; i < TAM; ++i) {
	printf("Dig. um idade e nome:");
	scanf("%d %s", &idade[i], nome);

	if(i == 0) {
		menor = idade[i];
		strcpy(menor_string, nome);
		maior = idade[i];
		strcpy(maior_string, nome);
	} else {
		if(idade[i] > maior) {
			maior = idade[i];
			strcpy(maior_string, nome);
		}

		else if(idade[i] < menor) {
			menor = idade[i];
			strcpy(menor_string, nome);
		}
	}
}

printf("\nidade: %d %s\n", menor, menor_string);
printf("idade: %d %s\n\n", maior, maior_string);

getchar();
return 0;
}

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 3

int main(void)
{
int idade[TAM], i, menor = 0, maior = 0;
char nome[30], menor_string[30], maior_string[30];

for(i = 0; i < TAM; ++i) {
	printf("Dig. um idade e nome:");
	scanf("%d %s", &idade[i], nome);

	if(i == 0) {
		menor = idade[i];
		strcpy(menor_string, nome);
		maior = idade[i];
		strcpy(maior_string, nome);
	} else {
		if(idade[i] > maior) {
			maior = idade[i];
			strcpy(maior_string, nome);
		}

		else if(idade[i] < menor) {
			menor = idade[i];
			strcpy(menor_string, nome);
		}
	}
}

printf("\nidade: %d %s\n", menor, menor_string);
printf("idade: %d %s\n\n", maior, maior_string);

getchar();
return 0;
}

 

 

Abraços :D

 

Obrigado! me ajudou muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.