Неизвестная ошибка - 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); }
Объяснение кода листинга программы
- Программа включает в себя библиотеки iostream, stdlib.h и time.h.
- Задается размер массива LINE и COLUMN.
- Функция vvod заполняет массив a случайными числами от -50 до 534.
- Функция Print выводит на экран содержимое массива a.
- Создается массив b для хранения неположительных значений из массива a.
- Циклы перебирают все элементы массива a.
- Если элемент меньше нуля, он копируется в массив b с учетом его позиции.
- После прохождения всех элементов массива a, происходит вывод на экран массива b.
- Циклы перебирают все элементы массива a.
- Если элемент больше или равен нулю, он копируется в массив b с учетом его позиции.
- После прохождения всех элементов массива a, происходит вывод на экран массива b.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д