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

Определить количество строк матрицы, не содержащих ни одного нулевого элемента

21.11.2011, 08:06. Показов 1648. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1)Количество строк не содержащих ни одного нулевого элемента
2)максимальное из чисел , встречающаяся в этой матрице более 1 раза


С первым вроде справился частично , но не совсем так , я смог сделать только что бы он находил эту строчку , но не считал их количество в общем, вот наработки :


Помогите , Пожалуйста


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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace F_01_L_5
{
    public class Task1
    {
        const int M = 6;
        float[,] ar = new float[M, M];
        ArrayTask1 at1 = new ArrayTask1();
        ArrayPrint2 ap2 = new ArrayPrint2();
 
        public void DoIt()
        {
            try
            {
                if (at1.DoIt("Task1.txt", ar))
                {
                    Calc();
                    ap2.DoIt(ar);
                }
            }
            catch
            {
                Console.WriteLine("Ошибка выполнения опции1");
            }
        }
 
        private void Calc()
        {
            int stroka = M;
            bool allnegative;
            float proizved = 1;
 
            for (int i = 0; i < M; i++)
            {
                allnegative = true;
                for (int j = 0; j < M; j++)
                {
 
                    if (ar[i, j] == 0)
                    {
                        allnegative = false;
                        break;
                    }
                }
                if (allnegative)
                {
                    stroka = i;
                    {
                        for (int j = 0; j < M; j++)
                            proizved *= ar[i, j];
                    }
                    break;
                }
            }
 
            if (stroka == M)
            {
                Console.WriteLine("В данном массиве нет строк не содержащих 0 элемент");
            }
            else
            {
                Console.WriteLine();
                Console.WriteLine("строка в которой нет нулевых элементов = {0}", stroka + 1);
                Console.WriteLine("произведение этих эллементов = {0}", proizved);
                Console.WriteLine();
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2011, 08:06
Ответы с готовыми решениями:

Матрицы. Определить количество строк, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество строк, не содержащих ни одного...

Определить количество строк матрицы, не содержащих ни одного нулевого элемента
дана целочисленная прямоуголная матрица.Определить 1)количество строк , не содержащих ни одного...

Определить количество строк матрицы, не содержащих ни одного нулевого элемента
Помогите исправить программу.Вторая часть программы не рабочая.Выдаёт ошибки не могу понять что не...

Определить количество строк матрицы, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить: количество строк, не содержащих ни одного...

5
58 / 58 / 29
Регистрация: 21.09.2009
Сообщений: 313
Записей в блоге: 1
21.11.2011, 09:58 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вот так можно найти количество строк, не содержащих нулей
C#
1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < width; i++)
            {
                counter = 0;
                for (int j = 0; j < height ; j++)
                {
                    if (array[i, j] != 0) counter++;
                    if (j == height - 1 && counter == height)
                        noZero++;
                }
              
            }
Чтобы найти максимальное из чисел, можно упорядочить матрицу по убыванию и искать два соседних равных элемента.
1
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
21.11.2011, 20:08  [ТС] 3
KillJoy, Видишь , это то не сложно найти макс элемент , для меня составляет проблему найти максимальный элемент , ВСТРЕЧАЮЩИЙСЯ 2 РАЗА , мой мозг не воспринимает этот алгоритм=)
0
58 / 58 / 29
Регистрация: 21.09.2009
Сообщений: 313
Записей в блоге: 1
21.11.2011, 20:51 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Я реализовывал это так :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 public double Max(int width, int height,int[,] array)
        {
            int[] OneDArray = new int[width * height];
            int count = 0, max = 0;
              for (int i = 0; i < width; i++)
                for (int j = 0; j < height ; j++)
                {
                    OneDArray[count] = array[i, j];
                    count++;
                }
              Array.Sort(OneDArray);
              Array.Reverse(OneDArray);
              int min = OneDArray[0];
              for (int i = 0; i < OneDArray.Length; i++)
                  if (OneDArray[i] < min) min = OneDArray[i];
              for (int i = 0; i < OneDArray.Length - 1; i++)
                  if (OneDArray[i] == OneDArray[i + 1]) { max = OneDArray[i]; break; }
                  else max = 0;
            return max;
       
        }
ps А ты, случайно, не в ИТМО учишься?
0
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
21.11.2011, 20:53  [ТС] 5
KillJoy, Не КарГТУ ИКТС
0
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
25.11.2011, 11:58  [ТС] 6
KillJoy, А не мог бы объяснить как это всё реализовать в теле Calc ну естественно с заменой
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace F_01_L_5
{
    public class Task2
    {
        const int M = 6;
 
        int[,] ar = new int[M, M];
        ArrayTask2 at2 = new ArrayTask2();
        ArrayPrint2 ap2 = new ArrayPrint2();
 
        public void DoIt()
        {
            try
            {
                if (at2.DoIt("Task1.txt", ar))
                {
                    Calc();
                    ap2.DoIt(ar);
                }
            }
            catch
            {
                Console.WriteLine("Ошибка выполнения опции2");
            }
        }
 
        private void Calc()
        {
            int stroka = M;
            bool allnegative;
 
            for (int i = 0; i < M; i++)
            {
                allnegative = false;
                for (int j = 0; j < M; j++)
                {
                    if (ar[i, j] > 0)
                    {
                        allnegative = true;
                        break;
                    }
                }
                if (allnegative)
                {
                    stroka = i;
                    break;
                }
            }
 
            if (stroka == M)
                Console.WriteLine("В данном масиве нет строк содержащих все отрицательные элементы");
 
            else
                Console.WriteLine();
            Console.WriteLine("строка = {0}", stroka);
            Console.WriteLine();
        }
    }
}
Добавлено через 17 часов 28 минут
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace F_01_L_5
{
    public class Task2
    {
        const int M = 6;
 
        int[,] ar = new int[M, M];
        ArrayTask2 at2 = new ArrayTask2();
        ArrayPrint2 ap2 = new ArrayPrint2();
 
        public void DoIt()
        {
            try
            {
                if (at2.DoIt("Task1.txt", ar))
                {
                    Calc();
                    ap2.DoIt(ar);
                }
            }
            catch
            {
                Console.WriteLine("Ошибка выполнения опции2");
            }
        }
 
 
        private void Calc()
        {
            int[] OneDArray = new int[M * M];
            int count = 0, max = 0;
            for (int i = 0; i < M; i++)
                for (int j = 0; j < M; j++)
                {
                    OneDArray[count] = ar[i, j];
                    count++;
                }
            Array.Sort(OneDArray);
            Array.Reverse(OneDArray);
            int min = OneDArray[0];
            for (int i = 0; i < OneDArray.Length; i++)
                if (OneDArray[i] < min) min = OneDArray[i];
            for (int i = 0; i < OneDArray.Length - 1; i++)
                if (OneDArray[i] == OneDArray[i + 1]) { max = OneDArray[i]; break; }
                else max = 0;
            return max;
 
        }
    }
}
Вот мой вариант , но что то не так , и я не могу понять что , он пишет
Ошибка "F_01_L_5.Task2.Calc()" возвращает значение void, поэтому после ключевого слова return не должно присутствовать выражение объекта
0
25.11.2011, 11:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2011, 11:58
Помогаю со студенческими работами здесь

В матрице определить количество строк, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица размером m на n. Определить количество строк, не...

Определить количество строк в массиве, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество строк, не содержащих ни одного...

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
И снова я со своими проблемами...... Необходимо написать программу, которая подсчитает кол-во...

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного...


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

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