Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 22.11.2018
Сообщений: 16
1

Все нечетные элементы матрицы заменить на ноль, затем найти строку с минимальным количеством нулей

23.11.2018, 08:30. Показов 2482. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с решением задания.
Необходимо все нечетные элементы матрицы заменить на ноль, затем найти строку с минимальным количеством нулей.Вывести на экран номер строки и количество в ней нулей.
Первую часть я зделал, но во второй у меня возникли трудности.

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
52
53
54
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
 
int main()
{
int x[5][5],n,m,i,j,null=0,min=0;
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
printf("Введите n= ");
scanf_s("%d",&n);
printf("\nВведите m= ");
scanf_s("%d",&m);
printf("\nВведите маccив\n");
 
for(i=0;i<n;i++)
{
 
for(j=0;j<m;j++)    
scanf_s("%d",&x[i][j]);
printf("\n");
 
}
printf("=================================");
printf("\nВходная матрица\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%4d",x[i][j]);
printf("\n");}
 
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(x[i][j]%2!=0)    
x[i][j]=0;}
 
printf("\n=================================");
printf("\nПреобразованная матрица\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%4d",x[i][j]);
printf("\n");}
for(i=0;i<n;i++)
{null=0;
for(j=0;j<m;j++)
if(x[i][j]==0)
null++;
printf("Строка %i количество нулевых элементов %d",i,null);
printf("\n");}
 
getch();
return 0;}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2018, 08:30
Ответы с готовыми решениями:

Заменить все нечетные элементы матрицы на 0, а у четных найти квадраты
Обменять все нечетные элементы на 0,а у четных найти квадраты. A(n*m) матрица

Дана матрица в столбцах с минимальным количеством отрицательных элементов все положительные элементы заменить на 0
Дана матрица A в столбцах с минимальным количеством отрицательных элементов все положительные...

Все отрицательные элементы матрицы заменить на ноль
Из произвольной матрицы (3х4) составить новую матрицу ,где все отрицательные элементы будут равны...

Заменить все отрицательные элементы матрицы на ноль
Из произвольной матрицы (3х4) составить новую матрицу ,где все отрицательные элементы будут равны...

5
2105 / 1192 / 496
Регистрация: 11.10.2018
Сообщений: 6,000
23.11.2018, 09:51 2
Лучший ответ Сообщение было отмечено Axie как решение

Решение

Попробуй так:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
 
int main()
{
int x[5][5] = {0}, N[5] = {0},
    n, m, i, j, null=0, min=0,
    Min = 0, Number = -1;
 
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
/*
printf("Vvedite n=");
scanf_s("%d",&n);
printf("\nVvedite m=");
scanf_s("%d",&m);
printf("\nVvedite massiv:\n");
*/
n = 2;
m = 2;
x[0][0] = 1;
x[0][1] = 2;
x[1][0] = 3;
x[1][1] = 4;
/*
for(i=0; i<n; i++)
{
    for(j=0; j<m; j++)
    scanf_s("%d", &x[i][j]);
    printf("\n");
}
*/
printf("=================================");
printf("\nVhodnaya matrica:\n");
for(i=0;i<n;i++)
{
    for(j=0;j<m;j++)
        printf("%4d", x[i][j]);
        printf("\n");
}
 
for(i=0; i<n; i++)
    for(j=0; j<m; j++)
    {
        if(x[i][j]%2 != 0)
            x[i][j]=0;
    }
 
printf("\n=================================");
printf("\nPreobrazovannaya matrica:\n");
for(i=0; i<n; i++)
{
    for(j=0; j<m; j++)
        printf("%4d", x[i][j]);
    printf("\n");
}
 
//Schitaem kolichestvo nulei
for(i=0; i<n; i++)  //po strokam
{
    null=0;
    for(j=0; j<m; j++)  //po stolbcam
        if(x[i][j]==0)
            null++;
    N[i] = null;
    printf("Stroka %i: kolichestvo nulevih elementov %d.",i,null);
    printf("\n");
}
//Poisk stoki s Minimalnim kolichestvim 0
Min = N[0];
Number = 0;
for(i = 1; i<n; i++)
    if(Min > N[i])
    {
        Min = N[i];
        Number = i;
    }
printf("\nMinimalnoe kolichestvo nulei nahoditsya s stroke %i,\
\nkolichestvo 0 v etoi stroke = %d.", Number, N[Number]);
 
getch();
return 0;
}
1
0 / 0 / 0
Регистрация: 22.11.2018
Сообщений: 16
24.11.2018, 19:50  [ТС] 3
А что делать если у меня 2 строки имеют одинаковое количество нулей?

Добавлено через 1 час 43 минуты
что делать если у меня 2 строки имеют одинаковое количество нулей?

Добавлено через 49 минут
что делать если у меня 2 строки имеют одинаковое количество нулей?
0
2105 / 1192 / 496
Регистрация: 11.10.2018
Сообщений: 6,000
24.11.2018, 20:29 4
На первую строку укажет.
0
0 / 0 / 0
Регистрация: 22.11.2018
Сообщений: 16
24.11.2018, 20:37  [ТС] 5
мне нужно вывести что в матрице несколько строк имеющих одинаковое количество нулей, как это сделать?
0
2105 / 1192 / 496
Регистрация: 11.10.2018
Сообщений: 6,000
25.11.2018, 06:52 6
Массив N хранит количество нулей в строках. Вам нужно было указать минимальное количество нулей. Для поиска этого минимального числа служит цикл for в строках 74-79.
Min - минимальное количество нулей, само значение минимального элемента массива N;
Number - его номер в массиве N.
Если Вам нужно, чтобы вывести несколько таких элементов, то нужно еще добавить поиск таких же элементов в этом массиве - цикл for() по массиву N.
Вот концовка программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Poisk stoki s Minimalnim kolichestvim 0
Min = N[0];
Number = 0;
for(i = 1; i<n; i++)
    if(Min > N[i])
    {
        Min = N[i];
        Number = i;
    }
 
printf("\nMinimalnoe kolichestvo nulei nahoditsya s stroke %d,\
\nkolichestvo 0 v etoi stroke = %d.", Number, Min);
 
//Poisk takih ge minimalnih
for(i = 0; i<n; i++)
    if((i != Number) && (N[i]) == Min)
        printf("\nTakoe ge kolichestvo nulei nahoditsya v stroke %d", i);
 
getch();
return 0;
}
0
25.11.2018, 06:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2018, 06:52
Помогаю со студенческими работами здесь

Заменить на ноль все ближайшие соседние элементы матрицы
Дан двумерный массив MAS. Ввести A (номер строки) и B (номер столбца) Заменить на ноль все...

Заменить на ноль все элементы главной диагонали матрицы
заменить на ноль все элементы главной диагонали матрицы + блоксхема

В четных строках матрицы заменить все отрицательные элементы на ноль
в четных строках матрицы заменить все отрицательные элементы на ноль: исходный массив А 6 строк 4...

В парных строках матрицы заменить все отрицательные элементы на ноль
помогите пожалуйста с задачей на С++ строки 6 столбцов 4, b = (sqrt (i)-sqrt (j)) / a в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru