quinta-feira, 3 de outubro de 2013

Programação C - Tecnólogo

 
 Srs alunos:

Segue solução, não otimizada, do exercício que solicitava a leitura de dois vetores A e B de um arquivo e a gravação em outro arquivo de um vetor 
C = A U B. Era admitido que os vetores não possuíam elementos repetidos e que o resultado não precisava ser ordenado.

Até a próxima postagem!

 ------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>

int main()
{   int vetor1[20];
    int vetor2[40];
    int k=0,n,max1,max2,j,l,a=0;
    char nomearq[] = {"vetores.txt"},nomearq1[] = {"c:\\Users\\Marco\\Documents\\2013_2\\uniao.txt"};
    FILE *fp, *fp1;
    fp=fopen(nomearq,"r");
    if(fp==NULL) exit(1);
    fp1=fopen(nomearq1,"w");
    if(fp1==NULL) exit(1);
    while(1)
    {  fscanf(fp,"%d ",&vetor1[k]);
       if(vetor1[k]==-1)break;
        k++;
    }
    max1=k-1;
    k=0;
    while(1)
    {  fscanf(fp,"%d ",&vetor2[k]);
       if(vetor2[k]==-1)break;
        k++;
    }
    max2=k-1;
    k=0;
    fclose(fp);
    for(j=0;j<=max1;j++)
        for(l=0;l<=max2;l++)
        {
            if(vetor1[j]==vetor2[l])break;
            if(l==max2)
            {
               a++;
               vetor2[max2+a]=vetor1[j];
            }
        }
    for(l=0;l<=(max2+a);l++)
        fprintf(fp1,"%d ",vetor2[l]);
    printf("Arquivo gravado");
    fclose(fp1);
    return 0;
    }

Nenhum comentário:

Postar um comentário