C++
10-11 класс
|
Расположить строки заданной матрицы по возрастанию количества одинаковых элементов в каждой строке.
жаль я не силён с указателями, посмотри на код, идую возможно поймёшь, а так компилятор ошибку в функции test выводит, типо не может с массивом там работать, возможно ты сможешь исправить
#include <iostream>
#include <stdlib.h>
using namespace std;
int n,l;
int test(int *a, int s)
{
int ret=0;
int c=0;
int i,j;
for(i=0;i<l;i++)
{
c=0;
for(j=i+1;j<l;j++)
if(a[s][i]==a[s][j])
c++;
if(ret<c) ret=c;
}
return ret;
}
int compare(const void* a, const void* b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int i,j,t;
int a[10][10],b[10][10];
cin >> n >> l;
for(i=0;i<n;i++)
for(j=0;j<l;j++)
cin >> a[i][j];
int *c = new int[n];
for(i=0;i<n;i++)
c[i]=test((int*)a,i);
qsort(c,n,sizeof(int),compare);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(test(&a[0][0],i)==c[i])
for(t=0;t<l;t++)
b[i][t]=a[i][t];
}
}
Другие вопросы из категории
СРОЧНО!
Пожалуйста.
Числа Люка определяются так: первое число равно 1, второе равно 3, каждое следующее равно сумме двух предыдущих. Составить программу, которая находит сумму первых k чисел Люка (k – задается пользователем). Определить количество первых чисел Люка, таких, что значение ихсуммы не превышает диапазона типа int (long int). Вывести в виде таблицы данное значение суммы и три предыдущих значения суммы (с соответствующими количествами чисел Люка).
........
A:=1;
B:=5;
WHILE A<B DO
BEGIN
WRITELN(A,B) ;
A:=A+1;
END;
2) Цикл FOR заменить на цикл WHILE DO
FOR I:=1 TO 50 DO
BEGIN
CISLO:=CH/ZN;
S:=S+CISLO;
END;