Ir ao conteúdo
  • Cadastre-se

Jonathangfra

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

3
  1. @devair1010Cheguei até aqui, ta lendo o arquivo certo, mas não to conseguindo imprimir a quantidade certa e falta a questão do tempo também. Se conseguir da uma mão agradeço! #include <stdio.h> #include <stdlib.h> #include <string.h> struct arq{ int cod; char t[45]; char aut[30]; int m; int a; }; typedef struct arq ARQ; void main(){ FILE *f=NULL; FILE *r=NULL; ARQ l[9999]; int i,z,j; int c; int conta[2020],contm[12]; int auxa,auxm; int contitulo,contautor; int menora,menorm; char arquivo[400]; printf("Digite o nome do arquivo:\n"); scanf("%s", arquivo); f = fopen(arquivo,"r"); if (f==NULL){ printf("Erro ao abrir o arquivo. %s\n",arquivo); exit(0); } i=0; while(fscanf(f,"%d",&l[i].cod)>0){ (fgets(l[i].t,45,f)); (fgets(l[i].aut,30,f)); fscanf(f,"%d\n",&z); l[i].m=z/10000; l[i].a=z%10000; printf("codigo %d\n",l[i].cod); printf("titulo %s\n",l[i].t); contitulo++; printf("autor %s\n",l[i].aut); contautor++; printf("mes %d\n",l[i].m); contm[l[i].m]++; printf("ano %d\n",l[i].a); conta[l[i].a]++; i++; } for (j=0;j<2020;j++){ for (i=0;i<2020;i++){ if(conta[i]<conta[i+1]){ auxa=conta[i]; conta[i]=conta[i+1]; conta[i+1]=auxa; } } } for (j=0;j<12;j++){ for (i=0;i<12;i++){ if(contm[i]<contm[i+1]){ auxm=contm[i]; contm[i]=contm[i+1]; contm[i+1]=auxm; } } } for(i==2019;i>=0;i--){ if(i>0){ menora=conta[i]; i=-1; } } for(i==12;i>=0;i--){ if(i>0){ menorm=contm[i]; i=-1; } } if((r=fopen("resposta.txt","wb"))==NULL) { printf("Arquivo não pode ser aberto\n"); exit(1); } fprintf(r,"titulos: %d\n",contitulo); fprintf(r,"autores: %d\n",contautor); fprintf(r,"ano com mais: %d\n",conta[0]); fprintf(r,"ano com menos: %d\n",menora); fprintf(r,"mes com mais: %d\n",contm[0]); fprintf(r,"mes com menos: %d\n",menorm); }
  2. Arquivo - https://www.dropbox.com/s/4guyiinfke6g6pc/livros_final.zip?dl=0 O arquivo contém a seguinte estrutura de registro: -Código, inteiro de sete posições -Título, caractere de 45 posições -Autor, caractere de 30 posições -Mês de publicação, inteiro de uma posição -Ano de publicação, inteiro de quatro posições Você deverá ler o arquivo e responder as seguintes perguntas: -Quantos títulos de livros diferentes existem? -Quantos autores diferentes existem? -Qual é o ano com menos e mais publicações? -Qual é o mês com menos e mais publicações? -Tempo total de processamento Para resolver as perguntas acima, crie um programa em linguagem C que leia esse arquivo, manipule o arquivo e responda as perguntas solicitadas. Gere um novo arquivo com as perguntas e as respostas. Pontos a serem observados na implementação: -Usar alocação dinâmica de memória -Usar passagem por referência -Usar uma estrutura para definir os campos do registro do arquivo Submita o arquivo do programa e o arquivo texto gerado com as respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!