Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
maksibumdibum
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 11
1

Заменить в отсортированном массиве все отрицательные элементы на нулевое значение

12.11.2013, 22:18. Просмотров 908. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток!
Есть задача: Разработать программу, которая запоминает в двумерном массиве, имеющем 6 строк и 5 столбцов, числа от –5 до 10, получаемые случайным образом, а затем располагает их в порядке возрастания в строке. Заменить в отсортированном массиве все отрицательные элементы на нулевое значение. Найти суммы исходного и обработанного массивов. Я не могу понять как сделать в моей программе сортировку по строкам по возрастанию! Пожалуйста, помогите закончить мою программу((((

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
 
void Ran(int a[][5]);
void Output(int a[][5]);
void sortirovka(int b[][5]);
 
 
int main(void)
{
int a[6][5];
 
printf("Случайный массив:\n");
Ran(a);
Output(a);
 
printf("Массив после первой сортировки:\n");
Ran(a);
sortirovka(a);
 
 
}
 
void Ran(int a[][5])
{
srand(time(NULL));
int i,k;
for (i=0;i<5;i++)
for (k=0;k<5;k++)
a[k][i]=rand()%16-5;
} 
 
void Output(int a[][5])
{
int i,k,S1=0;
for (i=0;i<5;i++)
{
for (k=0;k<5;k++)
{
if (a[k][i]<=10) 
printf("%2d ",a[k][i]);
}
printf("\n");
}
for (i=0;i<5;i++)
for (k=0;k<5;k++)
S1+=a[i][k];
printf("Сумма исходного массива - %d\n",S1);
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 22:18
Ответы с готовыми решениями:

Все отрицательные элементы массива заменить на их абсолютное значение
Доброго времени суток! Помогите разобраться! Дана последовательность чисел a (i=1, 2, …, n). Все...

Заменить все отрицательные элементы массива на значение, введенное пользователем
Такое задание: Задан вещественный массив размера N. Заменить все отрицательные элементы массива...

Заменить все отрицательные элементы массива на значение минимального положительного элемента
Помогите пожалуйста!! Задан вещественный массив размером N. Заменить все отрицательные элементы...

Найти минимальное значение в массиве и заменить все элементы, равные минимальному, на противоположные по знаку
Найти минимальное значение в массиве, размерность N и заменить все элементы равные минимальному...

Все положительные элементы матрицы заменить на 1, а отрицательные элементы – на (-1)
Ввести массив A(N, N). Образовать массив В(N, N) в котором все положительные элементы массива А(N,...

1
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
14.11.2013, 23:53 2
Первый вариант. Для небольших массивов можеи применить простой метод, например пузырек
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void sort_1(int a[][M]) {
    // N - число строк
    // M - число столбцов
    int raw = 0, col = 0, step = 0;
    for (raw = 0; raw < N; ++raw) // строки
        // сортируем одномерный массви - строку
        // номер прохода
        for (step = 0; step < M - 1; ++step)
            //внутренний цикл прохода
            for (col = 0; col < M - 1 - step; ++col) {
                if (a[raw][col] > a[raw][col + 1]) {
                    int t = a[raw][col];
                    a[raw][col] = a[raw][col + 1];
                    a[raw][col + 1] = t;
                }
            }
}
для больших, можно использовать более сложный метод, например стандартный
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int compare(const void * a, const void * b) {
    return (*(int*) a - *(int*) b);
}
 
void sort_2(int a[][M]) {
    // N - число строк
    int raw = 0;
    for (raw = 0; raw < N; ++raw) {
        int *p = &a[raw][0];
        // сортируем одномерный массив - строку
        qsort(p, M, sizeof(int), compare);
    }
 
}
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 23:53

Все отрицательные элементы матрицы заменить минимальным элементом, а все положительные - максимальным
В двумерном N*K массиве целых чисел все отрицательные элементы заменить минимальным элементом...

Все положительные элементы массива заменить на значение "1", отрицательные на "-1"
Дана последовательность чисел a (i=1, 2, …, n). Все положительные элементы заменить на значение...

Заменить все отрицательные элементы массива нулями
1. 2. Заменить все отрицательные элементы массива нулями. 3. Проверить, есть ли в массиве...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.