Нужно сделать двумерный массив и упорядочить строки таблицы в порядке возрастания количества положительных элементов в каждой строке
Я сделал массив но никак не выходит посчитать кол-во натуральных элементов, если ставить условия в for то матрица ломается.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int S, C, sn, cn, k=0, temp, j=0;;
printf("Type the number of strings: ");
scanf("%u", &sn);
if (sn < 1)
{
puts("The number of strings should be greater then 0.");
return -1;
}
printf("Type the number of columns: ");
scanf("%u", &cn);
if (cn < 1)
{
puts("The number of columns should be greater then 0.");
return -1;
}
float X[sn][cn];
for ( C = 1; C < (cn+1); C ++ )
for ( S = 1; S < (sn+1); S ++ )
scanf ("%d", & X[S][C]);
while (k<cn){
if (X[k][j]>0){k=k+1;temp=temp+1;
}
if (k=S){
printf("ct=%d\n", temp);
temp=0;
j=j+1;}}
return 0;}```
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Массивы нумеруются с нуля. Обходить лучше по строкам, сразу же можно и записывать количество положительных элементов.
float X[sn][cn];
float NumPlus[sn] = {0};
for ( S = 0; S < sn; S++ )
for ( C = 0; C < cn; C++ ) {
scanf ("%d", & X[S][C]);
if (X[S][C] > 0)
NumPlus[S]++;
}
for ( S = 0; S < sn; S++ )
printf("ct[%d]=%d", S, ct[S]);
Затем выполняете любую сортировку, для сравнения используя значения из NumPlus. Когда обмениваете строки, заодно обменивайте и соответствующие значения из NumPlus.