Неизвестная ошибка - C (СИ)

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

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

нужна помощь, Задание: нужна сортировка массива все отрицательные элементы массива перенести в его начало (началом считать элемент 00 и далее по возрастанию построчно), а все остальные — в конец, сохраняя исходное взаимное расположение как среди отрицательных, так и среди остальных элементов
    
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
#include <time.h>//для произвольной генерации чисел.
#define LINE 5
#define COLUMN 5
 
void vvod(int a[][COLUMN], int l, int col)
{
int i;
int j;
int c;
srand((unsigned)time(NULL));
for(i=0;i<l;i++)
{
for(j=0;j<col;j++)
{
c = -50 + rand() % 534;
a[i][j]=c;
}
}
}
void Print(int a[][COLUMN], int l, int col)
{
int i,j;
for(i=0;i<l;i++)
{
for(j=0;j<col;j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
}
 
void main()
{ int k,t;
int a[LINE][COLUMN]={0};
int b[LINE][COLUMN]={0};
vvod(a, LINE, COLUMN);
for (int i; i<LINE; i++)
for(int j; j<COLUMN; j++)
{
if(a[i][j]<0)
{
b[i][j]=a[i][j];
int k=i;
int t=j;
}
else
i=k+1;
j=t+1;
for(int i; i<LINE; i++)
for (int j; j<COLUMN; j++)
{
if(a[i][j]>=0)
b[i][j]=a[i][j];
}
}
 
Print(b,LINE,COLUMN);
 
}

Решение задачи: «Неизвестная ошибка»

textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
#include <time.h>//для произвольной генерации чисел.
#define LINE 5
#define COLUMN 5
 
void vvod(int a[][COLUMN], int l, int col)
{
int i;
int j;
int c;
srand((unsigned)time(NULL));
for(i=0;i<l;i++)
{
for(j=0;j<col;j++)
{
c = -50 + rand() % 534;
a[i][j]=c;
}
}
}
void Print(int a[][COLUMN], int l, int col)
{
int i,j;
for(i=0;i<l;i++)
{
for(j=0;j<col;j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
}
 
void main()
{ int k=0,t;
int a[LINE][COLUMN]={0};
int b[LINE][COLUMN]={0};
vvod(a, LINE, COLUMN);
Print(a,LINE,COLUMN);printf("\n");// это для наглядности как меняется массив
for (int i=0; i<LINE; i++)
for(int j=0; j<COLUMN; j++)
    if(a[i][j]<0)
    {
        b[k/COLUMN][k%COLUMN]=a[i][j];
        k++;
    }
for(int i=0; i<LINE; i++)
for (int j=0; j<COLUMN; j++)
    if(a[i][j]>=0)
    {
        b[k/COLUMN][k%COLUMN]=a[i][j];
        k++;
    }
Print(b,LINE,COLUMN);
 
}

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

  1. Программа включает в себя библиотеки iostream, stdlib.h и time.h.
  2. Задается размер массива LINE и COLUMN.
  3. Функция vvod заполняет массив a случайными числами от -50 до 534.
  4. Функция Print выводит на экран содержимое массива a.
  5. Создается массив b для хранения неположительных значений из массива a.
  6. Циклы перебирают все элементы массива a.
  7. Если элемент меньше нуля, он копируется в массив b с учетом его позиции.
  8. После прохождения всех элементов массива a, происходит вывод на экран массива b.
  9. Циклы перебирают все элементы массива a.
  10. Если элемент больше или равен нулю, он копируется в массив b с учетом его позиции.
  11. После прохождения всех элементов массива a, происходит вывод на экран массива b.

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


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

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

12   голосов , оценка 3.833 из 5