Поменять cin cout на printf scanf - C (СИ)
Формулировка задачи:
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_CTYPE, "russian_Russia.1251"); // для корректного вывода кириллицы на экран
srand((unsigned int)time(0)); // инициализируем генератор случайных чисел
int a[50][50];
int n, m;
cout << "Введите количество строк матрицы: ";
cin >> n; //Вводим число строк матрицы
cout << "Введите количество столбцов матрицы: ";
cin >> m; //Вводим число столбцов матрицы
cout << "Исходная матрица:" << endl;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
a[i][j] = rand() % 100; // заполняем матрицу случайными числами
cout.width(4); // ширина поля для вывода
cout << a[i][j]; // выводим элемент матрицы
}
cout << endl;
}
// поиск наибольших элементов в строках матрицы
int b[50]; // массив для наибольших элементов строк матрицы
for (int i = 0; i < n; i++)
{
int max = a[i][0];
for (int j = 0; j < m; j++)
if (a[i][j] > max)
max = a[i][j];
b[i] = max; // записываем максимальный элемент строки в массив b
}
int q;
for (int i = 0; i < n-1; i++)
{
// поиск номера минимального элемента
int i_min = i;
for (int j = i; j < n; j++)
if (b[j] < b[i_min])
i_min = j;
// перестановка минимального элемента с другим
q = b[i];
b[i] = b[i_min];
b[i_min] = q;
for (int j = 0; j < m; j++) // в цикле переставляем строки матрицы
{
q = a[i][j];
a[i][j] = a[i_min][j];
a[i_min][j] = q;
}
}
cout << "Упорядоченная матрица:" << endl;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout.width(4); // ширина поля для вывода
cout << a[i][j]; // выводим элемент матрицы
}
//cout.width(4);
//cout << b[i];
cout << endl;
}
system("pause");
return 0;
}Решение задачи: «Поменять cin cout на printf scanf»
textual
Листинг программы
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_CTYPE, "russian_Russia.1251"); // для корректного вывода кириллицы на экран
srand((unsigned int)time(0)); // инициализируем генератор случайных чисел
int a[50][50];
int n=0, m=0,i=0,j=0;
printf("Введите количество строк матрицы: ");
scanf("%d",&n); //Вводим число строк матрицы
printf("Введите количество столбцов матрицы: ");
scanf("%d",&m); //Вводим число столбцов матрицы
printf("Исходная матрица: \n");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
a[i][j] = rand() % 100; // заполняем матрицу случайными числами
printf("%d\t",a[i][j]); // выводим элемент матрицы
if((j/4>1)&&j%4==0){
printf("\n");
}
}
printf("\n");
}
// поиск наибольших элементов в строках матрицы
int b[50]; // массив для наибольших элементов строк матрицы
for (i = 0; i < n; i++)
{
int max = a[i][0];
for (j = 0; j < m; j++)
if (a[i][j] > max)
max = a[i][j];
b[i] = max; // записываем максимальный элемент строки в массив b
}
int q;
for (i = 0; i < n-1; i++)
{
// поиск номера минимального элемента
int i_min = i;
for (j = i; j < n; j++)
if (b[j] < b[i_min])
i_min = j;
// перестановка минимального элемента с другим
q = b[i];
b[i] = b[i_min];
b[i_min] = q;
for (j = 0; j < m; j++) // в цикле переставляем строки матрицы
{
q = a[i][j];
a[i][j] = a[i_min][j];
a[i_min][j] = q;
}
}
printf("Упорядоченная матрица: \n");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("%d\t",a[i][j]); // выводим элемент матрицы
if((j/4>1)&&j%4==0){
printf("\n");
}
}
printf("\n");
}
//system("pause"); в моем линукс нет такого вызова
return 0;
}
Объяснение кода листинга программы
- Ввод количества строк матрицы
- Ввод количества столбцов матрицы
- Вывод исходной матрицы
- Поиск наибольших элементов в строках матрицы и запись их в массив b
- Поиск номера минимального элемента в массиве b
- Перестановка минимального элемента с другим
- Перестановка строк матрицы
- Вывод упорядоченной матрицы
- Нет системы
pauseв Linux