Дана целочисленная прямоугольная матрица размера N*M.
•Упорядочить столбцы матрицы по возрастанию первого элемента строки методом прямого обмена (пузырек).(Сортировка матрицы должна быть оформлена в виде отдельной функции. Все необходимые данные для функций должны передаваться им в качестве параметров, использование глобадьных переменных в функциях не допускается.)
•Определить:
1.Сумму элементов строк, не содержащих ни одного нулевого элемента;
2.Максимальную сумму из п. 1.
•Исходные данные и результаты вывести на экран.
Посчитать сумму элементов строк, не содержащих ни одного нулевого элемента получилось, а как выбрать максимальную сумму элементов строк не содержащих нулевых элементов. И как реализуется сортировка методом пузырька в С++.
Код: Выделить всё
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
int main(){
const int Row=3, Col=4;
int a[Row][Col];
int sum[Row];
int sums[Row];
int i,j,k,max,temp,s;
printf( "Enter elements of a massiv:\n" );
for (i=0; i<Row; i++)
{
for (j=0; j<Col; j++){
printf(" a[%i,%i]=",i,j);
scanf( "%d",&a[i][j]);
}
}
printf( " Massiv\n" );
printf( "________________________\n" );
for (i=0; i<Row; i++){
for (j=0; j<Col; j++) cout << setw(4) << a[i][j] << " ";
cout << endl;
}
for(i=0; i<Row; i++){
sum[i]=0;
for(j=0; j<Col; j++)
{
sum[i]=sum[i]+a[i][j];
}
}
int istr=-1, MaxKol=0;
printf("\n\n");
for (i=0; i<Row; i++){
int Kol=0;
for (j=0; j<Col; j++)
if (a[i][j]!=0)Kol++;
{if (Kol > Row) printf("\n Line number: %d does not contain zero element\n Amount of the line: %d ", i, sum[i]);
else printf("\n Contains zero elements a line number: %d", i);}
}
printf("\n\n");
printf("Press any key for exit...");
getch();
}