Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int analisiVettore (int* vett_ins, int* vett_primi, int* vett_norm, int lunghezza);
  5. int ScriviFile(int* vettore, int lunghezza, char* nome_file);
  6. int trova_primo (int numero);
  7.  
  8.  
  9.  
  10. int main()
  11. {
  12. int *vettIns=NULL, *vettPrimi=NULL, *vettNorm=NULL;
  13. int num, l=0;
  14.  
  15.  
  16.  
  17. printf("Benvenuto nel programma!\n");
  18.  
  19. do
  20. {
  21. printf("Inserisci un numero: ");
  22. scanf("%d" , &num);
  23. vettIns = (int*)realloc(vettIns, ++l*(sizeof(int))); //Inserimento dinamico numeri
  24. if(vettIns==NULL)
  25. {
  26. printf("Errore allocazione memoria");
  27. return (1);
  28. }
  29. *(vettIns+(l-1)) = num;
  30. }while(num>0);
  31.  
  32.  
  33. /*printf("\nI valori inseriti sono: ");
  34. for(int i=0; i<l-1;i++) //Debug vettIns
  35. printf("%d\t" , vettIns[i]);*/
  36.  
  37.  
  38. ScriviFile(vettIns, l, "numeri.txt"); //Chiamata funzioni
  39. ScriviFile(vettPrimi, analisiVettore(vettIns, vettPrimi, vettNorm, l-1), "numeri_primi.txt");
  40. ScriviFile(vettNorm, ((l-1)-analisiVettore(vettIns, vettPrimi, vettNorm, l-1)), "numeri_norm.txt");
  41.  
  42.  
  43.  
  44. return 0;
  45. }
  46.  
  47. int trova_primo (int numero)
  48. {
  49. int flag=0;
  50. int divisore;
  51.  
  52. for (divisore=2; divisore<numero; divisore++)
  53. {
  54. if (numero%divisore == 0)
  55. flag++;
  56. }
  57. return flag;
  58. }
  59.  
  60.  
  61. int analisi_vettore (int* vett_ins, int* vett_primi, int* vett_norm, int lunghezza)
  62. {
  63. int j=0, i=0;
  64. for (int k=0; k<lunghezza; k++)
  65. {
  66. if (trova_primo(vett_ins[k]) == 0)
  67. {
  68. vett_primi[i] = vett_ins[k];
  69. i++;
  70. }
  71. else
  72. {
  73. vett_norm[j] = vett_ins[k];
  74. j++;
  75. }
  76. }
  77. return i;
  78. }
  79.  
  80.  
  81. int ScriviFile(int* vettore, int lunghezza, char* nome_file)
  82. {
  83. FILE *fp = fopen("numeri" , "w");
  84. if(fp==NULL)
  85. printf("Errore apertura file");
  86. else
  87. {
  88. for(int i=0; i<lunghezza; i++)
  89. fprintf(fp , "%d" , vettore[i]);
  90. }
  91. fclose(fp);
  92. return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement