Advertisement
urbmal

ultimaora p1 12.05.2016

May 12th, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. /*
  2. ============================================================================
  3. Name : p1.c
  4. Author :
  5. Version :
  6. Copyright : Your copyright notice
  7. Description : Hello World in C, Ansi-style
  8. ============================================================================
  9. */
  10.  
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <string.h>
  14. #include "fct.h"
  15. int main(void) {
  16. char buff[100],*numeFirma;
  17. int *numere, n;;
  18. double*reale;
  19. FILE *f,*g;
  20. f=fopen("fis.txt","r");
  21. g=fopen("iesire.txt","w");
  22. if(!f)
  23. {
  24. fprintf(stderr,"EROARE LA DESCHIDERE");
  25. exit(EXIT_FAILURE);
  26. }
  27. fgets(buff,99,f);
  28. buff[strlen(buff)-1]='\0';
  29. numeFirma=(char*)malloc((strlen(buff)+1)*sizeof(char));//+1 este de la \0
  30. if(!numeFirma)
  31. {
  32. fprintf(stderr,"EROARE");
  33. exit(EXIT_FAILURE);
  34. }
  35. fscanf(f,"%d",&n);
  36. numere=(int*)malloc(n*sizeof(int));
  37. if(!numere)
  38. {
  39. fprintf(stderr,"EROARE");
  40. exit(EXIT_FAILURE);
  41. }
  42. reale=(double*)malloc(n*sizeof(double));
  43. if(!reale)
  44. {
  45. fprintf(stderr,"EROARE");
  46. exit(EXIT_FAILURE);
  47. }
  48. citire(n,numere,f);
  49. citirer(n,reale,f);
  50. //strcpy dar daca da warning folosim strcpy_s
  51. strcpy(numeFirma,buff);
  52. fprintf(f,"Firma \"");
  53. fputs(numeFirma,g);
  54. fprintf(f,"\" are....");
  55. afisare(n,numere,g);
  56. afisarer(n,reale,g);
  57. schema(n,numere,reale,g);
  58. free(numeFirma);
  59. free(numere);
  60. free(reale);
  61. numeFirma=0; numere=0; reale=0;
  62. fclose(f);
  63. fclose(g);
  64. return EXIT_SUCCESS;
  65. }
  66.  
  67. ___________________
  68.  
  69.  
  70. /*
  71. * fct.c
  72. *
  73. * Created on: May 12, 2016
  74. * Author: student
  75. */
  76.  
  77.  
  78. #include <stdio.h>
  79. #include <stdlib.h>
  80. #include <string.h>
  81. #include "fct.h"
  82.  
  83. void citire(int n,int v[50], FILE *f)
  84. {
  85. int i;
  86. for(i=0;i<n;i++)
  87. fscanf(f,"%d",&v[i]);
  88. }
  89.  
  90. void citirer(int n,double v[50], FILE *f)
  91. {
  92. int i;
  93. for(i=0;i<n;i++)
  94. fscanf(f,"%lf",&v[i]);
  95. }
  96.  
  97. void afisare(int n,int v[50], FILE *f )
  98. {
  99. int i;
  100. fprintf(f,"\n%d\n",n);
  101. for(i=0;i<n;i++)
  102. fprintf(f,"%d ",v[i]);
  103. }
  104.  
  105. void afisarer(int n,double v[50], FILE *f )
  106. {
  107. int i;
  108. fprintf(f,"\n");
  109. for(i=0;i<n;i++)
  110. fprintf(f,"%.2lf ",v[i]);
  111. }
  112.  
  113.  
  114. void schema(int n,int v[50], double g[50], FILE *f)
  115. {
  116. int i;
  117. info s;
  118. s.cost=v[0]*g[0];
  119. for(i=1;i<n;i++)
  120. {
  121.  
  122. if(s.cost<v[i]*g[i])
  123. s.idx_max=i;
  124. s.cost+=v[i]*g[i];
  125. }
  126. fprintf(f,"\n%.2lf %d",s.cost,s.idx_max);
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement