nucLeaRsc2

C Probleme Lab7

Nov 17th, 2012
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.23 KB | None | 0 0
  1. //1.
  2.  
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <string.h>
  6.  
  7. FILE* citire( char f[50] )
  8. {
  9.     FILE* fin=fopen(f, "rt");
  10.     if(!fin)
  11.     {
  12.         printf("Eroare la deschidere.");
  13.         return 0;
  14.     }
  15.     return fin;
  16. }
  17. float parcurgere ( FILE* fin, FILE* fout, int *lmed, int *i )
  18. {
  19.     char f[50]="", c;
  20.     int ok=1,nrcop=0;
  21.     *i=0;
  22.     while(!feof(fin))
  23.     {
  24.         c=fgetc(fin);
  25.         if(c!=EOF)
  26.             f[strlen(f)]=c;
  27.         if((c<'a' || c>'z') && c!=' ' && c!='\n')
  28.             ok=0;
  29.         else if(c=='\n')
  30.         {
  31.             if(feof(fin))
  32.                 break;
  33.             if(f[0]=='\n')
  34.                 ok=0,(*i)--;
  35.             int l=strlen(f);
  36.             if(ok)
  37.                 fprintf(fout, "%s", f), nrcop++;
  38.             *lmed+=strlen(f)-1;
  39.             int q;
  40.             for(q=0;q<l;q++)
  41.                 f[q]=0;
  42.             ok=1;
  43.             (*i)++;
  44.         }
  45.     }
  46.     return (float)nrcop/ *i;
  47. }
  48. int main ()
  49. {
  50.     FILE *fin, *fout;
  51.     char f[50];
  52.     int lmed=0,i=0;
  53.     float lcop;
  54.    
  55.     scanf("%s", f);
  56.     fin=citire(f);
  57.     if(!fin)
  58.         return 1,getch();
  59.     fout=fopen("f.out", "wt");
  60.     lcop=parcurgere(fin, fout, &lmed, &i)*100;
  61.    
  62.     printf("Procent linii copiate:%.2f \tLungime medie:%.2f",lcop, (float)lmed/i);
  63.     getch();
  64. }
  65.  
  66.  
  67. //2.
  68. #include <stdio.h>
  69. #include <conio.h>
  70. int parcurgere( FILE *fin, FILE *fout1, FILE *fout2, int *s, int a, int b)
  71. {
  72.     int x,nr=0;
  73.     while(!feof(fin))
  74.     {
  75.         if(!fscanf(fin, "%i", &x))
  76.         {
  77.             printf("Eroare la citire din fisier");
  78.             getch();
  79.             return -1;
  80.         }
  81.         if(x>=a && x<=b)
  82.             fprintf(fout1, "%i ", x),*s+=x,nr++;
  83.         else
  84.             fprintf(fout2, "%i ", x);
  85.     }
  86.     return nr;
  87. }
  88. int main ()
  89. {
  90.     FILE *fin, *fout1, *fout2;
  91.     fin=fopen("pr2.in", "rt");
  92.     if(!fin)
  93.     {
  94.         printf("Eroare la citire");
  95.         getch();
  96.         return 1;
  97.     }
  98.     fout1=fopen("pr2a.out", "wt");
  99.     fout2=fopen("pr2b.out", "wt");
  100.     int a,b,x,s=0;
  101.     printf("Citeste a, b: ");
  102.     scanf("%i %i", &a, &b);
  103.     x=parcurgere(fin, fout1, fout2, &s, a, b);
  104.    
  105.     printf("%i %.2f", x, (float)s/x);
  106.  
  107.     getch();
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment