Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. /* Se citesc dintr-un fisier perechi de numere naturale pana la citirea a doua valori nule.
  2. Sa se determine si sa se afiseze pe ecran cate dintre perechi incep cu aceeasi cifra. */
  3.  
  4. #include <stdio.h>
  5.  
  6. typedef struct
  7. {
  8. int nr1,nr2;
  9. }pereche;
  10.  
  11. void citire_fisier(FILE *f, pereche a[], int *n)
  12. {
  13. int i=0,x,y;
  14. while(!feof(f))
  15. {
  16. fscanf(f,"%i",&x);
  17. fscanf(f,"%i",&y);
  18. if(x!=0 && y!=0)
  19. {
  20. a[i].nr1=x;
  21. a[i].nr2=y;
  22. i++;
  23. }
  24. else
  25. break;
  26. }
  27. *n=i;
  28. }
  29.  
  30. void afisare_perechi(pereche a[],int n)
  31. {
  32. int i;
  33. printf("Perechile citite din fisier sunt:\n");
  34. for(i=0;i<n;i++)
  35. printf("(%i,%i)\n",a[i].nr1,a[i].nr2);
  36. }
  37.  
  38. int au_aceeasi_prima_cifra(int x, int y)
  39. {
  40. while(x>9)
  41. x=x/10;
  42. while(y>9)
  43. y=y/10;
  44. if(x==y)
  45. return 1;
  46. else
  47. return 0;
  48. }
  49.  
  50. void nr_perechi(pereche a[], int n, int *nr)
  51. {
  52. int i;
  53. *nr=0;
  54. for(i=0;i<n;i++)
  55. if(au_aceeasi_prima_cifra(a[i].nr1,a[i].nr2))
  56. (*nr)++;
  57. }
  58.  
  59. int main()
  60. {
  61. pereche a[30];
  62. int n,nr;
  63. FILE *f;
  64. f=fopen("in.txt","r");
  65. if(!f)
  66. printf("Eroare la deschiderea fisierului!");
  67. else
  68. {
  69. citire_fisier(f,a,&n);
  70. afisare_perechi(a,n);
  71. nr_perechi(a,n,&nr);
  72. printf("\nNr. perechilor care incep cu aceeasi cifra este %i\n",nr);
  73. fclose(f);
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement