Advertisement
Guest User

dakda

a guest
Mar 29th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define swap(x,y) do \
  4. { unsigned char swap_temp[sizeof(x) == sizeof(y) ? (signed)sizeof(x) : -1]; \
  5. memcpy(swap_temp,&y,sizeof(x)); \
  6. memcpy(&y,&x, sizeof(x)); \
  7. memcpy(&x,swap_temp,sizeof(x)); \
  8. } while(0)
  9.  
  10.  
  11. void citire(int v[][150],int NL, int NC)
  12. {
  13. int i=0,j=0;
  14. for(i=0; i<NC; i++)
  15. {
  16. for(j=0; j<NL; j++)
  17. {
  18. scanf("%d",&v[j][i]);
  19. }
  20. }
  21. }
  22.  
  23.  
  24. void tiparire(int v[][150],int NL,int NC)
  25. {
  26. int i=0,j=0;
  27. for(i=0; i<NL; i++)
  28. {
  29. for(j=0; j<NC; j++)
  30. {
  31. printf("%d ",v[i][j]);
  32. }
  33. printf("\n");
  34. }
  35. }
  36.  
  37.  
  38. void det_maxim(int v[][150],int NL,int NC)
  39. {
  40. int i=0,j=0,mx=-3200,pozi=0,pozj=0;
  41. for(i=0; i<NL; i++)
  42. {
  43. for(j=0; j<NC; j++)
  44. {
  45. if(v[i][j]>mx)
  46. {
  47. pozi=i;
  48. pozj=j;
  49. mx=v[i][j];
  50. }
  51. }
  52. }
  53. printf("Cel mai mare element este %d, pe linia %d si coloana %d",mx,pozi,pozj);
  54. }
  55.  
  56.  
  57. void constr_tab(int v[][150],int NL,int NC,int tab_sume[])
  58. {
  59. int i=0,j=0,s=0;
  60. for(i=0; i<NL; i++)
  61. {
  62. s=0;
  63. for(j=0; j<NC; j++)
  64. {
  65. s+=v[i][j];
  66. }
  67. tab_sume[i]=s;
  68. }
  69. printf("\nSumele sunt: ");
  70. for(i=0; i<NL; i++)
  71. {
  72. printf("%d ",tab_sume[i]);
  73. }
  74. printf("\n");
  75. }
  76. void interschimbare(int v[][150],int NL,int NC)
  77. {
  78. printf("prima coloana: ");
  79. int coloana_1;
  80. scanf("%d",&coloana_1);
  81. printf("a doua coloana: ");
  82. int coloana_2;
  83. scanf("%d",&coloana_2);
  84. if(coloana_1>NC || coloana_2>NC)
  85. {
  86. printf("Tabloul nu are atatea coloane");
  87. return;
  88. }
  89. int i=0;
  90. for(i=0; i<NL; i++)
  91. {
  92. swap(v[i][coloana_1],v[i][coloana_2]);
  93. }
  94. printf("\nTabloul cu coloana %d schimbata cu coloana %d\n",coloana_1,coloana_2);
  95. tiparire(v,NL,NC);
  96.  
  97.  
  98. }
  99. void cauta(int v[][150],int NL,int NC)
  100. {
  101. int valoare=0,pozi=0,pozj=0,i=0,j=0;
  102. printf("Cautati valoarea: ");
  103. scanf("%d",&valoare);
  104. for(i=0; i<NL; i++)
  105. {
  106. for(j=0; j<NC; j++)
  107. {
  108. if(v[i][j]==valoare)
  109. {
  110. pozi=i;
  111. pozj=j;
  112. }
  113. }
  114. }
  115. if(valoare)
  116. {
  117. printf("\nvaloarea %d se afla pe linia %d si coloana %d",valoare,pozi,pozj);
  118. }
  119. else
  120. {
  121. printf("\nvaloarea nu exista ");
  122. }
  123.  
  124.  
  125. }
  126.  
  127. int main()
  128. {
  129. int NL,NC,v[150][150];
  130. printf("Numar linii: ");
  131. scanf("%d",&NL);
  132. printf("Numar coloane: ");
  133. scanf("%d",&NC);
  134. citire(v,NL,NC);
  135. tiparire(v,NL,NC);
  136. det_maxim(v,NL,NC);
  137. int tab_sume[NL];
  138. constr_tab(v,NL,NC,tab_sume);
  139. interschimbare(v,NL,NC);
  140. cauta(v,NL,NC);
  141.  
  142. return 0;
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement