Advertisement
Guest User

Untitled

a guest
Oct 6th, 2015
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. using namespace std;
  4.  
  5.  
  6. const int nmax = 100;
  7.  
  8. int ArrayInputFromFile(int *n, int *m, int x[][nmax], char *fname)
  9. {
  10. FILE *file;
  11.  
  12.  
  13. if ((file = fopen(fname, "r")) == NULL)
  14. {
  15. printf("Невозможно открыть файл '%s'\n", fname);
  16. return(0);
  17. }
  18.  
  19. if (fscanf(file, "%d%d", m, n) < 2)
  20. {
  21. printf("Ошибка чтения из файла '%s'\n", fname);
  22. fclose(file);
  23. return(0);
  24. }
  25.  
  26. if (*m < 0 || *m > nmax || *n < 0 || *n > nmax)
  27. {
  28. printf("Количество строк и столбцов матрицы должны быть от 1 до %d!\n", nmax);
  29. return(0);
  30. }
  31.  
  32.  
  33. for (int i = 0; i < *m; i++)
  34. for (int j = 0; j < *n; j++)
  35. if (fscanf(file, "%d", &x[i][j]) < 1)
  36. {
  37. printf("Ошибка чтения из файла '%s'\n", fname);
  38. fclose(file);
  39. return(0);
  40. }
  41. }
  42. inline float ArraySrAr_matr(int n, int m, int x[][nmax])
  43. {
  44. float SrAr1,kol=0.0,sum=0.0;
  45. for (int i = 0; i < n; i++)
  46. {
  47. for (int j = 0; j < m; j++)
  48. {
  49. if (x[i][j]>0){sum+=x[i][j];kol++;}
  50. }
  51. }
  52. SrAr1=sum/kol;
  53. return SrAr1;
  54. }
  55. int MinElemStroki(int n,int x[])
  56. {
  57. int min=x[0];
  58. for(int i=0;i<n;i++)
  59. {
  60. if (min > x[i])
  61. {min=x[i];}
  62. }
  63. return min;
  64. }
  65.  
  66.  
  67. float ArraySrAr_str(int n, int x[])
  68. { float SrAr2,sum=0.0,kol=0.0;
  69. for (int i = 0; i < n; i++)
  70. {
  71. if (x[i] > 0){sum+=x[i];kol++;}
  72. }
  73. SrAr2=sum/kol;
  74.  
  75. return SrAr2;
  76. }
  77.  
  78.  
  79.  
  80. int main(int argc, char *argv[])
  81. {
  82. int a[nmax][nmax], b[nmax][nmax]; // объявляем два массива
  83.  
  84. int na, ma, nb, mb;
  85. float k1, k2;
  86.  
  87. setlocale(LC_ALL, "rus"); // Меняем кодировку для консольного приложения
  88.  
  89.  
  90. ArrayInputFromFile(&na, &ma, a, argv[1]);
  91. ArrayInputFromFile(&nb, &mb, b, argv[2]);
  92.  
  93. k1 = ArraySrAr_matr(na, ma, a);
  94. k2 = ArraySrAr_matr(nb, mb, b);
  95.  
  96. cout << "Среднее арифметическое массива а"<<" "<< k1<< "\n";
  97. cout << "Среднее арифметическое массива b"<<" "<< k2 << "\n";
  98.  
  99. if (k1 <= k2)
  100. {
  101. cout << "В 1 массиве меньше среднее арифметическое положительных элементов "<< endl;
  102.  
  103. for (int i = 0; i < na; i++)
  104. {
  105.  
  106. {
  107. cout << MinElemStroki(ma, a[i]) << endl;
  108. }
  109. }
  110. }
  111. else
  112. {
  113. cout << "В 2 массиве меньше среднее арифметическое положительных элементов чем в 1" << endl;
  114. for (int i = 0; i < nb; i++)
  115. cout << MinElemStroki(mb, b[i]) << endl;
  116. }
  117.  
  118.  
  119.  
  120.  
  121. system("pause");
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement