Advertisement
bruno3145

QUESTÃO 2: PROVA DE ARQUIVOS.

Dec 5th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.74 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int compara(int *vetor1, int *vetor2){
  5.  
  6.     ordena(vetor1);
  7.     ordena(vetor2);
  8.  
  9.     for(int i=0;i<6;i++){
  10.         if(vetor1[i]!=vetor2[i]){
  11.             return 0;
  12.             }
  13.     }
  14.     return 1;
  15. }
  16.  
  17. void ordena(int *vetor1){
  18.  
  19.     int i, j,aux;
  20.  
  21.  
  22.     for(i=0;i<6;i++)
  23.         for(j=i;j<6;j++)
  24.             if(vetor1[i]>vetor1[j]){
  25.                 aux=vetor1[i];
  26.                 vetor1[i]=vetor1[j];
  27.                 vetor1[j]=aux;
  28.             }
  29. }
  30.  
  31. main(){
  32.  
  33.     FILE *arquivo;
  34.     char f_name[30];
  35.     int v[10][6];
  36.     int vet[6];
  37.     int vet2[6];
  38.     int cont=-1;
  39.     int contador=0;
  40.     int i=0;
  41.  
  42.     printf("Digite o nome do arquivo que deseja acessar:\n"); gets(f_name);
  43.     arquivo = fopen(f_name,"r");
  44.     if(arquivo==NULL)
  45.         printf("ERRO AO ABRIR O ARQUIVO");
  46.  
  47.     while((fscanf(arquivo,"%d %d %d %d %d %d",&v[i][0],&v[i][1],&v[i][2],&v[i][3],&v[i][4],&v[i][5]))!=EOF){         // coloca o conteudo do arquivo em uma matriz
  48.             i++;
  49.     }
  50.  
  51.     for(int m=0;m<10;m++){       // compara linha por linha da matriz, cont começa no -1 pq eu sempre comparo cada linah com todas, ou seja, uma hora a linha sera comparada com ela mesma;
  52.         cont=-1;
  53.         for(int g=0;g<6;g++){
  54.             vet[g]=v[m][g];
  55.         }
  56.             for(int p=0;p<10;p++){
  57.                 for(int u=0;u<6;u++){
  58.                     vet2[u]=v[p][u];
  59.                 }
  60.                     if(compara(vet,vet2)==1)
  61.                         cont++;
  62.             }
  63.         if(cont<=0)           // significa que o vetor se repetiu só uma vez, quando foi comparado com ele mesmo
  64.             contador++;
  65.     }
  66.         printf("O numero de conjuuntos que nao se repetem e: '%d'", contador);
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement