iamakulov icon

Task 7 for Boris

iamakulov | PRO | 11/10/13 04:32:44 PM UTC | 0 ⭐ | 423 👁️ | Never ⏰ | []
C++ |

2.12 KB

|

None

|

0 👍

/

0 👎

//7.В каждой строке матрице проверить наличие положительных элементов и при их наличии выполнить реверс элементов этой строки.
#include<stdio.h>
#include<math.h>
 
int main()
{
    int i,j,m,n, beginIndex, endIndex;
    double a[10][10]={{0,-8.4, -13.6, -34.5,16.3,-34.9, 18.25,7,12, -56.14},
    {-34.9, -18.25,-7,-12, -56.14,13, 18, 34, -102,66},
    {2, 18, 34, 102,66,-38,-71,23,0.4,15},
    {-13.6, -34.5,-16.3,-34.9, 18.25,7,12, -56.14,13, 18}, 
    {16.3,-34.9, 18.25,7,12, -56.14,13, 18, 34, -102},
    {18.25,7,12, -56.14,13, 18, 34, -102,66,-38},
    {12, -56.14,13, 18, 34, -102,66,-38,-71,23},
    {8.4, 13.6, -34.5,16.3,-34.9, 18.25,7,12, -56.14,13},
    {-34.5,16.3,-34.9, 18.25,7,12, -56.14,13, 18, 34},
    {56.14,13, 18, 34, -102,66,-38,-71,23,0.4}
    };
    double buf;
    char haveReversed = 0;
    //Ввод и контроль размеров матрицы
    printf("\t Введите размеры матрицы m<=10 n<=10\n");
    scanf("%d%d",&m,&n);
    if (m<=0 || m>10 ||n<=0 ||n>10)
    {
        printf("\t Введенные размеры матрицы не допустимы\n",n);
        printf("\nДля завершения программы нажмите любую клавишу\n");
        return 0;
    }
    printf("\nИсходная матрица \n");
    for(i=0; i<m;i++)
        for(j=0; j<n;j++)
            printf("%7.2lf%c",a[i][j],j==n-1?'\n':' '); 
    for(i = 0; i < m; i++) {
        haveReversed = 0;
        for(j = 0; j < n && !haveReversed; j++) {
            if(a[i][j] > 0)
            { 
                beginIndex = 0;
                endIndex = n-1;
                while(beginIndex < endIndex)
                {
                    buf = a[i][beginIndex];
                    a[i][j] = a[i][endIndex];
                    a[i][endIndex] = buf;
                    beginIndex++;
                    endIndex--;
                }
        
                haveReversed = 1;
            }
        }
    }
    
    //Вывод преобразованной матрицы
    printf("\nПреобразованная матрица \n");
    for(i=0; i<m;i++)
        for(j=0; j<n;j++)
            printf("%7.2lf%c",a[i][j],j==n-1?'\n':' '); 
    
    printf("\nДля завершения программы нажмите любую клавишу\n");
    return 0;
}

Comments