Поменять cin cout на printf scanf - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. #include <stdlib.h>
  2. #include <time.h>
  3. #include <iostream>
  4. using namespace std;
  5. int main()
  6. {
  7. setlocale(LC_CTYPE, "russian_Russia.1251"); // для корректного вывода кириллицы на экран
  8. srand((unsigned int)time(0)); // инициализируем генератор случайных чисел
  9. int a[50][50];
  10. int n, m;
  11. cout << "Введите количество строк матрицы: ";
  12. cin >> n; //Вводим число строк матрицы
  13. cout << "Введите количество столбцов матрицы: ";
  14. cin >> m; //Вводим число столбцов матрицы
  15. cout << "Исходная матрица:" << endl;
  16. for (int i = 0; i < n; i++)
  17. {
  18. for (int j = 0; j < m; j++)
  19. {
  20. a[i][j] = rand() % 100; // заполняем матрицу случайными числами
  21. cout.width(4); // ширина поля для вывода
  22. cout << a[i][j]; // выводим элемент матрицы
  23. }
  24. cout << endl;
  25. }
  26. // поиск наибольших элементов в строках матрицы
  27. int b[50]; // массив для наибольших элементов строк матрицы
  28. for (int i = 0; i < n; i++)
  29. {
  30. int max = a[i][0];
  31. for (int j = 0; j < m; j++)
  32. if (a[i][j] > max)
  33. max = a[i][j];
  34. b[i] = max; // записываем максимальный элемент строки в массив b
  35. }
  36. int q;
  37. for (int i = 0; i < n-1; i++)
  38. {
  39. // поиск номера минимального элемента
  40. int i_min = i;
  41. for (int j = i; j < n; j++)
  42. if (b[j] < b[i_min])
  43. i_min = j;
  44. // перестановка минимального элемента с другим
  45. q = b[i];
  46. b[i] = b[i_min];
  47. b[i_min] = q;
  48. for (int j = 0; j < m; j++) // в цикле переставляем строки матрицы
  49. {
  50. q = a[i][j];
  51. a[i][j] = a[i_min][j];
  52. a[i_min][j] = q;
  53. }
  54. }
  55. cout << "Упорядоченная матрица:" << endl;
  56. for (int i = 0; i < n; i++)
  57. {
  58. for (int j = 0; j < m; j++)
  59. {
  60. cout.width(4); // ширина поля для вывода
  61. cout << a[i][j]; // выводим элемент матрицы
  62. }
  63. //cout.width(4);
  64. //cout << b[i];
  65. cout << endl;
  66. }
  67. system("pause");
  68. return 0;
  69. }

Решение задачи: «Поменять cin cout на printf scanf»

textual
Листинг программы
  1. #include <stdlib.h>
  2. #include <time.h>
  3. #include <stdio.h>
  4. #include <locale.h>
  5.  
  6. int main()
  7. {
  8.   setlocale(LC_CTYPE, "russian_Russia.1251"); // для корректного вывода кириллицы на экран
  9.   srand((unsigned int)time(0)); // инициализируем генератор случайных чисел
  10.   int a[50][50];
  11.   int n=0, m=0,i=0,j=0;
  12.   printf("Введите количество строк матрицы: ");
  13.   scanf("%d",&n);  //Вводим число строк матрицы
  14.   printf("Введите количество столбцов матрицы: ");
  15.   scanf("%d",&m);            //Вводим число столбцов матрицы
  16.  
  17.   printf("Исходная матрица: \n");
  18.   for (i = 0; i < n; i++)
  19.   {
  20.     for (j = 0; j < m; j++)
  21.     {
  22.       a[i][j] = rand() % 100; // заполняем матрицу случайными числами
  23.  
  24.       printf("%d\t",a[i][j]); // выводим элемент матрицы
  25.        if((j/4>1)&&j%4==0){
  26.       printf("\n");
  27.       }
  28.     }
  29.     printf("\n");
  30.   }
  31.  
  32.   // поиск наибольших элементов в строках матрицы
  33.   int b[50]; // массив для наибольших элементов строк матрицы
  34.   for (i = 0; i < n; i++)
  35.   {
  36.     int max = a[i][0];
  37.     for (j = 0; j < m; j++)
  38.       if (a[i][j] > max)
  39.         max = a[i][j];
  40.     b[i] = max; // записываем максимальный элемент строки в массив b
  41.   }
  42.  
  43.   int q;
  44.   for (i = 0; i < n-1; i++)
  45.   {
  46.     // поиск номера минимального элемента
  47.     int i_min = i;
  48.     for (j = i; j < n; j++)
  49.       if (b[j] < b[i_min])
  50.         i_min = j;
  51.  
  52.     // перестановка минимального элемента с другим
  53.     q = b[i];
  54.     b[i] = b[i_min];
  55.     b[i_min] = q;
  56.     for (j = 0; j < m; j++) // в цикле переставляем строки матрицы
  57.     {
  58.       q = a[i][j];
  59.       a[i][j] = a[i_min][j];
  60.       a[i_min][j] = q;
  61.     }
  62.   }
  63.  
  64.   printf("Упорядоченная матрица: \n");
  65.   for (i = 0; i < n; i++)
  66.   {
  67.     for (j = 0; j < m; j++)
  68.     {
  69.       printf("%d\t",a[i][j]); // выводим элемент матрицы
  70.       if((j/4>1)&&j%4==0){
  71.       printf("\n");
  72.       }
  73.     }    
  74.     printf("\n");
  75.   }
  76.  
  77.   //system("pause"); в моем линукс нет такого вызова
  78.   return 0;
  79. }

Объяснение кода листинга программы

  1. Ввод количества строк матрицы
  2. Ввод количества столбцов матрицы
  3. Вывод исходной матрицы
  4. Поиск наибольших элементов в строках матрицы и запись их в массив b
  5. Поиск номера минимального элемента в массиве b
  6. Перестановка минимального элемента с другим
  7. Перестановка строк матрицы
  8. Вывод упорядоченной матрицы
  9. Нет системы pause в Linux

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут