Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Irina_Djie
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 8
#1

задание по двумерным массивам - C#

25.09.2013, 00:30. Просмотров 600. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста, задание - в двумерном массиве найти количество строк, не содержащих 0, и максимальное значение, повторяющееся более одного раза.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ira4
{
    class Program
    {
        static void Main(string[] args)
        {
            double k = 0, ks=0;
            int n,m;
            //заполняем двумерный массив
            
            Console.WriteLine("Введите количество строк и столбцов массива (m):");
           m=int.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество строк и столбцов массива (n):");
           n=int.Parse(Console.ReadLine());
           Console.WriteLine("Введите элементы массива:");
            int [,] ira=new int [m,n];
            for (int i=0; i<m; i++)
            {
                for (int j = 0; j < n; j++)
                    ira[i, j] = int.Parse(Console.ReadLine());
            }
            Console.WriteLine("Исходный массив");
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                    Console.Write(" "+ira[i, j]);
               Console.WriteLine();
            }
            Console.WriteLine();
 
            //определяем количество строк, не содержащих ни одного нулевого элемента
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if (ira[i, j] == 0)
                        k++;
                }
                if (k == 0)
                    ks++;
 
                else
                    k = 0;
            }
            Console.WriteLine("количество строк, не содержащих ни одного нулевого элемента = " + ks);
 
            int max = 0, kol = 0;
            bool f = false;
            do
            {
                //Поиск максимального
                max = ira[0, 0];
                for (int i = 0; i < m; i++)
                    for (int j = 0; j < n; j++)
                        if (max < ira[i, j])
                            max = ira[i, j];
                //Проверка на количество
                kol = 0;
                for (int i = 0; i < m; i++)
                    for (int j = 0; j < n; j++)
                        if (ira[i, j] == max)
                            kol++;
 
                if (kol > 1)
                    f = true;
                else
                    for (int i = 0; i < m; i++)
                        for (int j = 0; j < n; j++)
                            if (ira[i, j] == max)
                                ira[i, j] = int.MinValue;
            } while (!f);
            Console.WriteLine("\nМаксимальное из чисел, встречающихся в заданной матрице более одного раза: " + max);
            Console.ReadLine();
 
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 00:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос задание по двумерным массивам (C#):

Задача по двумерным массивам - C#
Помогите пожалуйста:( Дана целочисленная квадратная матрица. Найдите наименьший элемент побочной диагонали этой матрицы. как сделать:((( ...

Не могу написать программу по двумерным массивам! - C#
Дали задание: Каждый элемент строки прямоугольной матрицы представить как приращение по отношению к минимальному элементу этой же строки....

двумерным массивам (обычный массив и класс Array) - C#
помогите... Найти столбец матрицы, содержащий максимальное количество единиц

Работа с двумерным массов - C#
Мне требовалось создать двумерный массив n×m. Заполнить значениями и найти среднее арифметическое значений, стоящих выше главной...

Работа с двумерным массивом - C#
Добрый вечер, такая задача : Дано клетчатое поле размера N ×N, заполненное единицами и нуля- ми. В первой строке и первом столбце...

Задача с двумерным массивом - C#
Помогите пожалуйста.. Понятия не имею что с этим делать(((( Задание: Введите массив и отобразите на экране исходный массив по строкам....

4
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
25.09.2013, 00:42 #2
Как то так...
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ira4
{
    class Program
    {
        static void Main(string[] args)
        {
            double k = 0, ks = 0;
            int n, m;
            //заполняем двумерный массив
 
            Console.WriteLine("Введите количество строк и столбцов массива (m):");
            m = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество строк и столбцов массива (n):");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите элементы массива:");
            int[,] ira = new int[m, n];
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                    ira[i, j] = int.Parse(Console.ReadLine());
            }
            Console.WriteLine("Исходный массив");
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                    Console.Write(" " + ira[i, j]);
                Console.WriteLine();
            }
            Console.WriteLine();
 
            //определяем количество строк, не содержащих ни одного нулевого элемента
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if (ira[i, j] == 0)
                        k++;
                }
                if (k == 0)
                    ks++;
 
                else
                    k = 0;
            }
            Console.WriteLine("количество строк, не содержащих ни одного нулевого элемента = " + ks);
 
            int max = 0, kol = 0;
            bool f = false;
            max = ira[0, 0];
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                    if (max < ira[i, j])
                        max = ira[i, j];
           
                //Поиск максимального
                
                //Проверка на количество
                kol = 0;
                for (int i = 0; i < m; i++)
                    for (int j = 0; j < n; j++)
                        if (ira[i, j] == max)
                            kol++;
 
                if (kol > 1)             
            Console.WriteLine("\nМаксимальное из чисел, встречающихся в заданной матрице более одного раза: " + max);
                else
                    Console.WriteLine("\nМаксимальное число, которое встречается более одного раза нет" + max);
            Console.ReadLine();
 
        }
    }
}
0
Irina_Djie
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 8
25.09.2013, 02:26  [ТС] #3
Максимальное, встречающееся более 1 раза всё равно не правильно находит

Добавлено через 33 минуты
исходный код работает правильно только в том случае если в массиве есть повторяющиеся значения.
0
Zheka13
31 / 31 / 2
Регистрация: 18.03.2011
Сообщений: 96
Завершенные тесты: 5
25.09.2013, 02:52 #4
немного изменил тот код что выше. Вроде бы во всех случаях правильно находит макс
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ira4
{
    class Program
    {
        static void Main(string[] args)
        {
            double k = 0, ks = 0;
            int n, m;
            //заполняем двумерный массив
 
            Console.WriteLine("Введите количество строк и столбцов массива (m):");
            m = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество строк и столбцов массива (n):");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите элементы массива:");
            int[,] ira = new int[m, n];
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                    ira[i, j] = int.Parse(Console.ReadLine());
            }
            Console.WriteLine("Исходный массив");
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                    Console.Write(" " + ira[i, j]);
                Console.WriteLine();
            }
            Console.WriteLine();
 
            //определяем количество строк, не содержащих ни одного нулевого элемента
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if (ira[i, j] == 0)
                        k++;
                }
                if (k == 0)
                    ks++;
 
                else
                    k = 0;
            }
            Console.WriteLine("количество строк, не содержащих ни одного нулевого элемента = " + ks);
 
            int max = 0, kol = 0;
            max = ira[0, 0];
            kol = 1;
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                    if (max <= ira[i, j])
                    {
                        for (int x = 0; x < m; x++)
                            for (int y = 0; y < n; y++)
                                if ((ira[i, j] == ira[x, y]) && (i != x || j != y))
                                {
                                    max = ira[i, j];
                                    kol++;
                                }
                    }    
            if (kol != 1)
                Console.WriteLine("\nМаксимальное из чисел, встречающихся в заданной матрице более одного раза: " + max);
            else
                Console.WriteLine("Нету повторяющихся чисел");
            Console.ReadLine();
 
        }
    }
}
1
Irina_Djie
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 8
25.09.2013, 03:02  [ТС] #5
Спасибо большое)
0
25.09.2013, 03:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 03:02
Привет! Вот еще темы с ответами:

Задача с двумерным массивом - C#
Помогите пожалуйста.) Введите массив и отобразите на экране исходный массив по строкам. Если требуется что-то найти, то на экран выведите...

Работа с двумерным динамическим массивом - C#
Доброго времени суток! Имеется некая введенная таблица mas (i - кол. строк), допустим: A B C D M A P D H L J A ...

Работа с матрицей (двумерным массивом) - C#
Задача такая, дан нам этот массив(мы сами вводим его как столбцы, так и строки), надо найти особые числа, это те у которых пред идущий...

Разработать методы работы с двумерным массивом - C#
Разработать методы работы с двумерным массивам. Ввести с клавиатуры двухмерный массив и организовать: поиск наибольшего и наименьшего...


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

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

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