1 Востаннє редагувалося DoneeX (20.10.2014 22:13:43)

Тема: C. Двовимірний масив

Всім привіт!

Завдання: Для матриці К(m,n), 1<m, n<10, знайти кількість рядків де є хоча б один нуль. Переставити рядки за зростанням значень максимальних елементів рядків.

Зробив що знаходить рядки де є 0, рахує їх, знаходить максимальні значення в рядку. Далі я не знаю як все це переставити.. Думав спочатку за допомогою масива в який записував максимальні значення..

#include <time.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
int main(void)
{
srand((unsigned)time(NULL));
int i,j,m,n,k,l=0;

printf("\nVvedit kilkist radku=");
scanf("%d",&m); 
printf("\nVvedit kilkist stovpci=");
scanf("%d",&n);
int mas[m][n];
int max[m];
for (i=0;i<m;i++)
{
k=0;
max[m]=0;
for (j=0;j<n;j++)
{

mas[j][i]=rand()%10;

printf(" %d ",mas[j][i]);

if (mas[j][i]==0) k++;
if (mas[j][i]>max[m]) max[m]=mas[j][i];

}
printf("\n kilcistk=%d",k);
printf(" max=%d",max[m]);
if (k>0) l++;
printf("\n");
}
if (l>0) printf("\n kilcist r9dkiv z 0=%d",l); 
else printf("\n NO."); 

return 0;
}

Допоможіть будь ласка завершити завдання

2

Re: C. Двовимірний масив

А який алгоритм сортування ви намагалися реалізувати?

3

Re: C. Двовимірний масив

1.написати функцію що повертає максимальний елемент рядка:

int maxElem( int* first, int length ) {
  int result = first[0];
 for( int i = 0; i < length; ++i )
  if( first[i] > i )
    result = first[i];
  return result;
}

2. написати функцію swap що міняє значення елементів рядків міцсями:

void swap( int* first,  int* second, int length ) {
 ...
}

3. реалізувати один з алгоритмів сортування, наприклад, бульбашковий - він найпостіший, в якому рядки порівнювати функцією maxElem, а міняти місцями функцєю swap