C 4
Main.c Guest on 21st November 2020 12:27:48 AM
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define anoAtual 2011
  5.  
  6. typedef struct musica{
  7.     char nome[50];
  8.     int duracao;
  9.     int ano;
  10. }Musica;
  11.  
  12. void ordena(Musica *vetMusicas, int numeroMusicas){
  13.     int  i, j;
  14.     Musica aux;
  15.  
  16.     for(i = 0; i < numeroMusicas-1; i ++){
  17.         for(j = i+1; j < numeroMusicas; j ++){
  18.             if(vetMusicas[j].duracao <= vetMusicas[i].duracao){
  19.                 aux = vetMusicas[i];
  20.                 vetMusicas[i] = vetMusicas[j];
  21.                 vetMusicas[j] = aux;
  22.             }
  23.         }
  24.     }
  25. }
  26.  
  27. int qtdadeMinutos (int segundos){
  28.     int minutos;
  29.  
  30.     minutos = segundos/60;
  31.  
  32.     return minutos;
  33. }
  34.  
  35. int qtdadeSegundos (int segundos){
  36.     int segundosRestantes;
  37.  
  38.     segundosRestantes = segundos % 60;
  39.  
  40.     return segundosRestantes;
  41. }
  42.  
  43. void idade (int ano, FILE *saida){
  44.     if(ano == anoAtual){
  45.         fprintf(saida, "lancada este ano.\n");
  46.     }
  47.     else{
  48.         fprintf(saida, "lancada %d anos atras.\n", anoAtual-ano);
  49.     }
  50. }
  51.  
  52. int main()
  53. {
  54.     FILE *entrada = fopen("entrada.txt", "r");
  55.     FILE *saida = fopen("saida.txt", "w");
  56.     int numeroMusicas, i;
  57.     Musica *vetMusicas;
  58.  
  59.     fscanf(entrada, "%d", &numeroMusicas);
  60.  
  61.     vetMusicas = (Musica *) malloc (numeroMusicas * sizeof(Musica));
  62.  
  63.     for(i = 0; i < numeroMusicas; i ++){
  64.         fscanf(entrada, "%s", vetMusicas[i].nome);
  65.         fscanf(entrada, "%d", &vetMusicas[i].duracao);
  66.         fscanf(entrada, "%d", &vetMusicas[i].ano);
  67.     }
  68.  
  69.     ordena(vetMusicas, numeroMusicas);
  70.  
  71.     for(i = 0; i < numeroMusicas; i ++){
  72.         if(qtdadeSegundos(vetMusicas[i].duracao) < 10)
  73.             fprintf(saida, "%s %d:0%d ", vetMusicas[i].nome, qtdadeMinutos(vetMusicas[i].duracao), qtdadeSegundos(vetMusicas[i].duracao));
  74.         else
  75.             fprintf(saida, "%s %d:%d ", vetMusicas[i].nome, qtdadeMinutos(vetMusicas[i].duracao), qtdadeSegundos(vetMusicas[i].duracao));
  76.  
  77.         idade(vetMusicas[i].ano, saida);
  78.     }
  79.  
  80.     fclose(entrada);
  81.     fclose(saida);
  82.     return 0;
  83. }

Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.