Найти в матрице первую строку, все элементы которой упорядочены по возрастанию - C (СИ) (78997)

Узнай цену своей работы

Формулировка задачи:

Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить упорядоченность элементов этой строки на обратную. Вот код:
#include <stdio.h>
#include <conio.h>
void main()
{
 
int a[100][100],i,j, m,n,k=0,s,t,x,c,r;
    printf("vvedite stolbci i stroki: n , m ");
    scanf("%d%d",&n,&m);    
    
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            printf("a[%d][%d]",i+1,j+1);
            scanf("%d",&a[i][j]);
        }
    }
    for (i=0;i<n;i++)
    {   
        for (j=0;j<m;j++)
        {
            
            for (s=0;s<j;s++)
            {
                for (r=1;r<j;r++)
                {
                    if (a[i][s]<a[i][r])
                    {
                        k++;
                    }
                }
            }   
        }
        if (k==m-1)
        {
            printf("stroka %d\n", i+1); 
            for (j=0;j<(m/2);j++)
            {
                x=a[i][j];
                a[i][j]=a[i][m-1];
                a[i][m-1]=x;
            }
            break;          
        }   
    }
            
    printf("MATRICA: \n");
    for (i=0;i<n;i++)
    {
        for (j=0;j<m;j++)
        printf("%d", a[i][j]);
    printf("\n");
    }
    getch();
    
}
ПОДСКАЖИТЕ ГДЕ ОШИБКА?

Решение задачи: «Найти в матрице первую строку, все элементы которой упорядочены по возрастанию»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
void main()
{
 
int a[100][100],i,j, m,n,k=0,x;
        printf("vvedite stolbci i stroki: n , m ");
        scanf("%d%d",&n,&m);    
        
        for(i=0;i<n;i++)
        {
                for(j=0;j<m;j++)
                {
                        printf("a[%d][%d]",i+1,j+1);
                        scanf("%d",&a[i][j]);
                }
        }
        for (i=0;i<n;i++)
        {       
                for (j=1;j<m;j++)
                    if(a[i][j]<a[i][j-1])
                        break;   
                if (j==m)
                {
                        printf("stroka %d\n", i+1);     
                        for (j=0;j<(m/2);j++)
                        {
                                x=a[i][j];
                                a[i][j]=a[i][m-1-j];
                                a[i][m-1-j]=x;
                        }
                        break;                  
                }       
        }
                        
        printf("MATRICA: \n");
        for (i=0;i<n;i++)
        {
                for (j=0;j<m;j++)
                printf("%d ", a[i][j]);
        printf("\n");
        }
        getch();

Объяснение кода листинга программы

  1. Ввод количества строк и столбцов матрицы с помощью функции scanf.
  2. Заполнение матрицы с помощью двух вложенных циклов и функции scanf.
  3. Проверка на условие, что элементы в строке упорядочены по возрастанию с помощью двух вложенных циклов и условного оператора if.
  4. Если условие выполняется, то выводится номер строки и с помощью четырех вложенных циклов элементы этой строки переупорядочиваются.
  5. Вывод матрицы с помощью двух вложенных циклов и функции printf.
  6. Ввод с клавиатуры с помощью функции getch.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы