Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #define M 25
  6.  
  7. typedef struct{
  8. float p;
  9. int l;
  10. char *V;
  11. }struttura;
  12.  
  13. int carica_dati(FILE *fp,struttura **s);
  14. int comb(int pos,struttura *val,struttura *sol, int n, int k,int start, int count, int somma);
  15.  
  16. int main()
  17. {
  18. int pos=0,count=0;
  19. char *sigla;
  20. int j,b;
  21. struttura *s,*sol;
  22. FILE *fp_in;
  23. fp_in=fopen("prodotti.txt","r");
  24. b=carica_dati(fp_in,&s);
  25. //STAMPA DEI DETI PER VEDERE SE SONO EFFETTIVAMENTE CARICATI NELLA STRUTTURA
  26. for(j=0;j<b;j++){
  27. printf("\n%d %s %f",s[j].l,s[j].V,s[j].p);
  28. }
  29. printf("\n");
  30. //FUNZIONE RICORSIVA
  31. //for (j=1;j<=b;j++){
  32. sol = malloc(3 * sizeof(*sol));
  33. count = comb(pos, s, sol, b, 3, 0, &count,0);
  34. }
  35. //}
  36.  
  37. int carica_dati(FILE *fp_in,struttura **s){
  38. struttura *S;
  39. int n,j,x;
  40. char parola[M];
  41. fscanf(fp_in,"%d",&n);
  42. printf("%d",n);
  43. S=malloc(n*sizeof(*S));
  44. for(j=0;j<n;j++){
  45. fscanf(fp_in,"%s %f",parola,&S[j].p);
  46. S[j].l=strlen(parola);
  47. S[j].V=strdup(parola);
  48. }
  49. *s=S;
  50. return n;
  51. }
  52.  
  53. int comb(int pos,struttura *val,struttura *sol, int n, int k,int start, int count,int somma) {
  54. char parola[M];
  55.  
  56. int i, j;
  57. if (pos >= k) {
  58. if(somma<10){
  59. for (i=0; i<k; i++)
  60. printf("%s ", sol[i].V);
  61. printf("%f\n",somma);
  62. return count+1;
  63. }
  64. }
  65. for (i=start; i<n; i++) {
  66. //parola=val[i].V;
  67. //sol[pos].V=(parola)
  68. sol[pos].V=strdup(val[i].V);
  69. somma+=val[i].p;
  70. //printf("%f ",val[i].p);
  71. count = comb(pos+1, val, sol, n, k, i+1, count,somma);
  72.  
  73.  
  74. }
  75. return count;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement