fork download
  1.  
  2. #include <iostream>
  3. #include <locale>
  4. #include <fstream>
  5. using namespace std;
  6.  
  7. bool readFile(char*fname, float** &a, int &n, int &m) {
  8. ifstream fin;
  9. fin.open(fname);
  10. if (!fin) return 0;
  11. fin >> n >> m;
  12. a = new float*[n];
  13. for (int i = 0; i < n; i++)
  14. {
  15. a[i] = new float[n];
  16. for (int j = 0; j < n; j++)
  17. fin >> a[i][j];
  18. }
  19. fin.close();
  20. return 1;
  21. }
  22.  
  23. float kolStlb(float** &a, int &n, int &m){
  24. int kol = 0, i, j;
  25. for (j = 0; j < m; j++)
  26. for (i = 0; i < n; i++)
  27. if (a[i][j] == 0)
  28. {
  29. kol++;
  30. }
  31. return kol;
  32. }
  33.  
  34. float numStrk(float** &a, int &n, int &m)
  35. {
  36. int max = 0, i = 0, j = 0, kol = 0, num;
  37. for (i = 0; i < n; i++)
  38. {
  39. for (j = 0; j < m; j++)
  40. for (int k = 0; k < m; k++)
  41. if (a[i][j] == a[i][k])
  42. kol++;
  43. if (kol > max)
  44. {
  45. kol = max;
  46. num = i;
  47. }
  48. }
  49. return num;}
  50.  
  51. int main() {
  52. setlocale(LC_ALL, "");
  53. int n, m;
  54. char s;
  55. float **a;
  56. char fname[20];
  57. cout << "Имя файла?"; cin >> fname;
  58. if (!readFile(fname, a, n, m)) {
  59. cout << "Такого файла здесь нет! Проверьте имя и расположение искомого файла. \n";
  60. return 0;
  61. }
  62. cout << "Файл успешно загружен! \n Нажмите 1, чтобы узнать количество столбцов с нулевым элементом \n Нажмите 2, чтобы найти номер строки с максимальным количеством равных элементов \n Нажмите 0, чтобы выйти";
  63. while (true){
  64. cin >> s;
  65. switch (s){
  66. case '0':return 0;
  67. case '1': cout <<kolStlb(a, n, m) << endl; break;
  68. case '2': cout << numStrk(a, n, m) << endl;break;
  69. default: cout << "retry";break;
  70.  
  71. }
  72. }
  73. // cout << " Колличество столбцов с нулевым элементом " << kolStlb(a, n, m) << endl;
  74. // cout << " Номер строки с наибольшим колличеством одинаковых элементов " << numStrk(a, n, m) << endl;
  75. cout << endl;
  76. }
  77.  
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
Имя файла?Такого файла здесь нет! Проверьте имя и расположение искомого файла.