arandoble 0 Denunciar post Postado Março 9, 2012 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
Renato Utsch 24 Denunciar post Postado Março 9, 2012 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
arandoble 0 Denunciar post Postado Março 9, 2012 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
Renato Utsch 24 Denunciar post Postado Março 9, 2012 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
arandoble 0 Denunciar post Postado Março 12, 2012 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
Renato Utsch 24 Denunciar post Postado Março 12, 2012 #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
arandoble 0 Denunciar post Postado Março 13, 2012 #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
Renato Utsch 24 Denunciar post Postado Março 13, 2012 Nada! Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites