Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке. Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента.
написала как матрицу создавать, подскажите как написать дальше..
#include
#include
#include
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int M,N, i, j;
printf("\tПрограмма упорядочивает строки целочисленной\n"
"\tпрямоугольной матрицы по возрастанию количесва \n"
"\tодинаковых элементов в каждой строке. \n"
"\tИ находит номер первого из столбцов, \n"
"\tне содержащих ни одного отрицательного эл-та. \n");
printf("Введите количество строк: ");
scanf("%d",&M);
printf("Введите количество столбцов: ");
scanf("%d",&N);
int mas[N][M];
for (i=0;i<M;i++)
{
for (j=0;j<N;j++)
mas[i][j]=-20+rand()%20;
}
Другие языки программирования и технологии
помогите написать программу на Си
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() */
#include <stdio.h
#include <time.h
#include <locale.h
#include <random
#include <conio.h
int main(){
srand(time(0));
setlocale(0,"");
int a = 1, b = 5; // диапазон случайных значений
const int N = 3, M = 5; // размеры матрицы
int mat[N][M]; // матрица
int eq[N]; // массив для подсчёта количества одинаковых элементов
int counter(1); // переменная, для подсчёта количетсва одинаковых элементов
int temp;
// обнуляем массив для хранения одинаковых записей
for(int i(0); i < N; i++)
eq[i] = 0;
// заполняем матирицу и выводим её на экран
printf("Начальная матрица: \n");
for(int i(0); i < N; i++)
{
for(int j(0); j < M; j++)
{
mat[i][j] = rand() % (b - a + 1) + a;
printf("%3i",mat[i][j]);
}
printf("\n");
}
for(int i(0); i < N; i++)
{
for(int j(0); j < M-1; j++)
{
for(int k(j+1); k < M; k++)
{
if(mat[i][j] == mat[i][k]) counter++;
}
// если в одной строке находится несколько повторяющихся элементов,
// то запишется большее количество
if(counter > eq[i]) eq[i] = counter;
counter = 1;
}
}
printf("\nКоличество повторяемых элементов в строке: \n");
for(int i(0); i < N; i++)
printf("%i\n",eq[i]);
printf("\n");
// сортируем методом пузырька
for(int i(1); i < N; i++)
{
for(int j(N-1); j >= i; j--)
{
if(eq[j] < eq[j-1]){
for(int k(0); k < M; k++)
{
temp = mat[j][k];
mat[j][k] = mat[j-1][k];
mat[j-1][k] = temp;
}
temp = eq[j];
eq[j] = eq[j-1];
eq[j-1] = temp;
}
}
}
printf("\nКоличество повторяемых элементов в строке: \n");
for(int i(0); i < N; i++)
printf("%i\n",eq[i]);
printf("\n");
printf("Отсортированная матрица: \n");
// выводим отсортированную матрицу
for(int i(0); i < N; i++)
{
for(int j(0); j < M; j++)
{
printf("%3i",mat[i][j]);
}
printf("\n");
}
getch();
return 0;
}
#include <time.h
#include <locale.h
#include <random
#include <conio.h
int main(){
srand(time(0));
setlocale(0,"");
int a = 1, b = 5; // диапазон случайных значений
const int N = 3, M = 5; // размеры матрицы
int mat[N][M]; // матрица
int eq[N]; // массив для подсчёта количества одинаковых элементов
int counter(1); // переменная, для подсчёта количетсва одинаковых элементов
int temp;
// обнуляем массив для хранения одинаковых записей
for(int i(0); i < N; i++)
eq[i] = 0;
// заполняем матирицу и выводим её на экран
printf("Начальная матрица: \n");
for(int i(0); i < N; i++)
{
for(int j(0); j < M; j++)
{
mat[i][j] = rand() % (b - a + 1) + a;
printf("%3i",mat[i][j]);
}
printf("\n");
}
for(int i(0); i < N; i++)
{
for(int j(0); j < M-1; j++)
{
for(int k(j+1); k < M; k++)
{
if(mat[i][j] == mat[i][k]) counter++;
}
// если в одной строке находится несколько повторяющихся элементов,
// то запишется большее количество
if(counter > eq[i]) eq[i] = counter;
counter = 1;
}
}
printf("\nКоличество повторяемых элементов в строке: \n");
for(int i(0); i < N; i++)
printf("%i\n",eq[i]);
printf("\n");
// сортируем методом пузырька
for(int i(1); i < N; i++)
{
for(int j(N-1); j >= i; j--)
{
if(eq[j] < eq[j-1]){
for(int k(0); k < M; k++)
{
temp = mat[j][k];
mat[j][k] = mat[j-1][k];
mat[j-1][k] = temp;
}
temp = eq[j];
eq[j] = eq[j-1];
eq[j-1] = temp;
}
}
}
printf("\nКоличество повторяемых элементов в строке: \n");
for(int i(0); i < N; i++)
printf("%i\n",eq[i]);
printf("\n");
printf("Отсортированная матрица: \n");
// выводим отсортированную матрицу
for(int i(0); i < N; i++)
{
for(int j(0); j < M; j++)
{
printf("%3i",mat[i][j]);
}
printf("\n");
}
getch();
return 0;
}
Похожие вопросы
- Помогите написать программу на Си
- помогите написать программу на Си
- помогите написать программу на си
- Помогите написать программу в СИ. буду очень благодарин
- помогите написать программу в Си
- Помогите написать программу на Си.
- Помогите написать программу на Си с помощью ФУНКЦИЙ.
- <<ПОМОГИТЕ! НАПИСАТЬ ПРОГРАММУ НА СИ ИЛИ ПАСКАЛЕ КОТОРАЯ ВЫВОДИТЬ СУММУ ЦИФР ЧИСЛА ОТ 1 ДО N
- Помогите написать программу на СИ++.Определить попадает ли точку в заштрихованную область
- Помогите написать программу со switch в СИ