Advertisement
hocikto19

Untitled

Oct 22nd, 2013
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.25 KB | None | 0 0
  1. /*
  2. *Napíšte program, ktorý slová zo súborov prvy.txt a druhy.txt zapíše do
  3. *súboru treti.txt striedavo tak, že každé nepárne slovo v súbore treti.txt
  4. *bude zo súboru prvy.txt a každé párne zo súboru druhy.txt v poradí, ako
  5. *boli v pôvodných súboroch. Každé (aj posledné) slovo v súbore treti.txt bude
  6. *nasledované medzerou. Naviac, pred každým slovom bude značka vyjadrujúca,
  7. *z ktorého súboru slovo pochádza. Ak zo súboru prvy.txt, značkou je znak +, ak
  8. *zo súboru druhy.txt, značkou je znak -. Ak niektorý zo súborov obsahuje viac
  9. *slov ako druhý, potom tieto budú zapísané za sebou na konci súboru treti.txt.
  10. *Predpokladajte, že slová obsahujú len písmená a oddelené môžu byť len jednou
  11. *medzerou alebo jedným znakom konca riadku.
  12. */
  13. // uloha-5-6.c -- Tyzden 5 - Uloha 6
  14. // Michal Kovacik, 21.10.2013 08:37:22
  15.  
  16. #include <stdio.h>
  17.  
  18. int main()
  19. {
  20.   FILE *fr1, *fr2, *fw;
  21.   int c, slov1=0, slov2=0, slovmin, i;
  22.   if((fr1=fopen("prvy.txt", "r"))==NULL || (fr2=fopen("druhy.txt", "r"))==NULL || (fw=fopen("treti.txt", "w"))==NULL)
  23.   {
  24.     printf("Subor sa nepodarilo otvorit\n");
  25.     return 0;
  26.   }
  27.   while((c=getc(fr1))!=EOF)
  28.     if (c==' ' || c=='\n')
  29.       slov1++;
  30.   fseek(fr1, -1, SEEK_END);
  31.   if(getc(fr1)==' ')
  32.     slov1--;
  33.   (slov1>0)? slov1++:0;
  34.   rewind(fr1);
  35.   while((c=getc(fr2))!=EOF)
  36.     if(c==' ' || c=='\n')
  37.       slov2++;
  38.   fseek(fr2, -1, SEEK_END);
  39.   if(getc(fr2)==' ')
  40.     slov2--;
  41.   (slov2>0)? slov2++:0;
  42.   rewind(fr2);
  43.   (slov1<=slov2)? (slovmin=slov1):(slovmin=slov2);
  44.   for(i=1; i<=slovmin; i++)
  45.   {
  46.     fprintf(fw, "+");
  47.     while((c=getc(fr1))!=EOF && c!=' ' && c!='\n')
  48.         fprintf(fw, "%c", c);
  49.     fprintf(fw, " -");
  50.     while((c=getc(fr2))!=EOF && c!=' ' && c!='\n')
  51.         fprintf(fw, "%c", c);
  52.     fprintf(fw, " ");
  53.   }
  54.   if(slov1>slov2)
  55.   {
  56.     for(slov1-=slovmin; slov1>0; slov1--)
  57.     {
  58.       fprintf(fw, "+");
  59.       while((c=getc(fr1))!=EOF && c!=' ' && c!='\n')
  60.         fprintf(fw, "%c", c);
  61.       fprintf(fw, " ");
  62.     }
  63.   }
  64.   else
  65.   {
  66.     for(slov2-=slovmin; slov2>0; slov2--)
  67.     {
  68.       fprintf(fw, "-");
  69.       while((c=getc(fr2))!=EOF && c!=' ' && c!='\n')
  70.         fprintf(fw, "%c", c);
  71.       fprintf(fw, " ");
  72.     }
  73.   }
  74.   return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement