Программа сортирует прямоугольную матрицу, которая вводится с клавиатуры, за возрастанием одинаковых элементов в каждой строке.
С++
Другие языки программирования и технологии
Задача в с++. уже голову сломал
#include <iostream>
#include <iomanip>
#include <cmath>
#include <algorithm>
using namespace std;
int main(){
size_t N, M;
cin >> N >> M;
int* A = new int[N * M];
for(size_t i = 0; i < N; i++)
for(size_t j = 0; j < M; j++){
cout << "A[" << i << "][" << j << "] = ";
cin >> A[i * M + j];
}
cout << endl;
int max = *max_element(A, A + N * M);
int min = *min_element(A, A + N * M);
bool Mm = abs(max) > abs(min);
int len = log10(abs(Mm? max : min)) + 2 + !Mm;
cout << "До сортировки: " << endl;
for(size_t i = 0; i < N * M; i++){
if(i % M == 0 && i != 0) cout << endl;
cout << setw(len) << A[i];
}
cout << endl;
for(size_t i = 0; i < N; i++)
sort(A + i * M, A + (i + 1) * M);
cout << "После сортировки: " << endl;
for(size_t i = 0; i < N * M; i++){
if(i % M == 0 && i != 0) cout << endl;
cout << setw(len) << A[i];
}
cout << endl;
delete[] A;
return 0;
}
#include <iomanip>
#include <cmath>
#include <algorithm>
using namespace std;
int main(){
size_t N, M;
cin >> N >> M;
int* A = new int[N * M];
for(size_t i = 0; i < N; i++)
for(size_t j = 0; j < M; j++){
cout << "A[" << i << "][" << j << "] = ";
cin >> A[i * M + j];
}
cout << endl;
int max = *max_element(A, A + N * M);
int min = *min_element(A, A + N * M);
bool Mm = abs(max) > abs(min);
int len = log10(abs(Mm? max : min)) + 2 + !Mm;
cout << "До сортировки: " << endl;
for(size_t i = 0; i < N * M; i++){
if(i % M == 0 && i != 0) cout << endl;
cout << setw(len) << A[i];
}
cout << endl;
for(size_t i = 0; i < N; i++)
sort(A + i * M, A + (i + 1) * M);
cout << "После сортировки: " << endl;
for(size_t i = 0; i < N * M; i++){
if(i % M == 0 && i != 0) cout << endl;
cout << setw(len) << A[i];
}
cout << endl;
delete[] A;
return 0;
}
scanf("%d",&M);
scanf("%d",&N);
int mas[N][M]; /* Так работать не будет! Размер статического массива должен быть известен во время компиляции */
mas[i][j] = 20 - rand() % 40; /* хотя бы так, а то у вас все отрицательные */
/* И неплохо бы было узнать зачем нужна функция srand() */
scanf("%d",&N);
int mas[N][M]; /* Так работать не будет! Размер статического массива должен быть известен во время компиляции */
mas[i][j] = 20 - rand() % 40; /* хотя бы так, а то у вас все отрицательные */
/* И неплохо бы было узнать зачем нужна функция srand() */
Алон Яав
К чему все это?
Рустам Валишин
это си
Похожие вопросы
- люди помогите написать прогу в паскале чтоб она запрашивала число и потом писала простое оно или нет, всю голову сломал
- срочно нужна помощь, а то я уже голову сломала
- С клавиатуры вводятся числа, пока не будет введен ноль, вывести числа в обратно порядке. С++ Голову сломал !!!
- Вопрос по ексель 2007 года. задача которая сломает вам голову.
- Умею решать математические задачи, а на языке программирование вообще ни капли даже в голову не приходит как?
- Как на языке С++ сделать вывод 5 задач через switch-case?
- Как вы решаете задачи?
- Нужна помощь в решении задачи по С++ связанная с матрицами
- Как сделать такую картинку Уже сломала всю голову как сделать такую картинку или на подобии Скажите программу
- Олимпиадные задачи по BASIC 4.5 ПОМОГИТЕ !!!