Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int analisivettore(int* vettins, int* vettprimi, int* vettnorm, int lunghezza);
  5. int scrivifiletutti(int* vettore, int lunghezza, char* nome_file);
  6. int scrivifileprimi(int* vettore, int lunghezza, char* nome_file);
  7. int scrivifilenormali(int* vettore, int lunghezza, char* nome_file);
  8.  
  9. int main ()
  10. {
  11. int *num_inseriti=NULL;
  12. int *num_primi=NULL;
  13. int *num_normali=NULL;
  14. int n, lenght;
  15. int i=0, u;
  16. int flag=0;
  17. int m;
  18.  
  19. do
  20. {
  21. printf("Inserisci numero\n");
  22. scanf("%d", &n);
  23. if (n>0)
  24. {
  25. num_inseriti=(int*)realloc(num_inseriti, (i+1)*sizeof(int));
  26. *(num_inseriti+i)=n;
  27. i++;
  28. }
  29. else
  30. {
  31. flag=1;
  32. }
  33. }while(flag==0);
  34.  
  35. lenght = analisivettore(num_inseriti, num_primi, num_normali,i);
  36.  
  37. u = i - lenght;
  38.  
  39. printf("\n%d", lenght);
  40.  
  41. scrivifiletutti(num_inseriti, i, "tutti.txt" );
  42. scrivifileprimi(num_primi, lenght, "primi.txt");
  43. scrivifilenormali(num_normali, u, "normali.txt");
  44.  
  45.  
  46. free(num_inseriti);
  47. free(num_primi);
  48. free(num_normali);
  49. return 0;
  50. }
  51.  
  52.  
  53. int analisivettore(int* vettins, int* vettprimi, int* vettnorm, int lunghezza)
  54. {
  55.  
  56. int k, z,flag=0, j=0, f=0;
  57. for (k=0; k<lunghezza; k++)
  58. {
  59. if (vettins[k]==1)
  60. {
  61. vettnorm=(int*)realloc(vettnorm, (j+1)*sizeof(int));
  62. vettnorm[j]=vettins[k];
  63. j++;
  64.  
  65. }
  66. else if(vettins[k]==2)
  67. {
  68. vettprimi=(int*)realloc(vettprimi, (f+1)*sizeof(int));
  69. vettprimi[f]= vettins[k];
  70. f++;
  71. }
  72. else
  73. {
  74. if(trovaprimo(vettins[k])==0)
  75. {
  76. vettnorm=(int*)realloc(vettnorm, (j+1)*sizeof(int));
  77. vettnorm[j]=vettins[k];
  78. j++;
  79. }
  80. else if(trovaprimo(vettins[k])==1)
  81. {
  82. vettprimi=(int*)realloc(vettprimi, (f+1)*sizeof(int));
  83. vettprimi[f]= vettins[k];
  84. f++;
  85. }
  86. }
  87. }
  88.  
  89. return f;
  90. }
  91.  
  92. int scrivifiletutti(int* vettore, int lunghezza, char* nome_file)
  93. {
  94. FILE *fp;
  95. fp=fopen(nome_file, "w");
  96.  
  97. int s;
  98. if (fp!=NULL)
  99. {
  100. for (s=0;s<lunghezza; s++)
  101. {
  102. fprintf(fp, "%d\n", *(vettore+s));
  103. }
  104. }
  105. else
  106. {
  107. printf("Eroore di apertura\n");
  108. }
  109. fclose(fp);
  110. return 0;
  111. }
  112.  
  113. int scrivifileprimi(int* vettore, int lunghezza, char* nome_file)
  114. {
  115. int i;
  116. FILE *fa;
  117. fa=fopen(nome_file, "w");
  118. if (fa!=NULL)
  119. {
  120. for (i=0; i<lunghezza; i++)
  121. {
  122. fprintf(fa, "%d\n", *(vettore+i));
  123. }
  124. }
  125. else
  126. {
  127. printf("Errore di apertura\n");
  128. }
  129.  
  130. fclose(fa);
  131. return 0;
  132. }
  133.  
  134. int scrivifilenormali(int* vettore, int lunghezza, char* nome_file)
  135. {
  136. int q;
  137. FILE *fz;
  138. fz=fopen(nome_file, "w");
  139. if (fz!=NULL)
  140. {
  141. for (q=0; q<lunghezza; q++)
  142. {
  143. fprintf(fz, "%d\n", *(vettore+q));
  144. }
  145. }
  146. else
  147. {
  148. printf("Errore di apertura\n");
  149. }
  150.  
  151. fclose(fz);
  152. return 0;
  153. }
  154.  
  155. int trovaprimo (int numero)
  156. {
  157. int i=3;
  158. int count=0;
  159.  
  160.  
  161. for (i=2; i<numero; i++)
  162. {
  163. if(numero%i==0)
  164. {
  165. count++;
  166. }
  167. }
  168. if (count>=1)
  169. {
  170. return 0;
  171. }
  172. else
  173. {
  174. return 1;
  175. }
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement