1 / 1 / 0
Регистрация: 20.05.2011
Сообщений: 18
1

Ошибка в коде. Не всегда правильно находит максимальный индекс TxtBox

18.09.2012, 16:23. Показов 619. Ответов 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
private void button1_Click(object sender, EventArgs e)
    {
            Random rnd = new Random();
            n = int.Parse(textBox1.Text);
            int[,] matrix = new int[n, n];
            TextBox[,] t = new TextBox[n, n];
            for (int i = 0; i < n; i++)
                for (int j = 0; j < n; j++)// проходим по елементам масива
                {
 
 
                    t[i, j] = new TextBox();//для каждого елемента массива создаем текстбокс
                    t[i, j].Location = new Point(i * 70 + 20, j * 20 + 20);//привязываем расположение тексбоксов к индексам масива чтоб они не налаживались друг на друга
                    t[i, j].Size = new Size(70, 20);//размеры текстбокса
                    panel1.Controls.Add(t[i, j]);//добавляем текстбоксы на панель
 
                    for (int k = 0; k < n; k++)
                    {
                        for (int l = 0; l < n; l++)
                        {
                            matrix[k, l] = rnd.Next(50);
 
                            t[i, j].Text = Convert.ToString(matrix[k, l]);
                        }
                    }
                    int max = matrix[0, 0];
                    for (int k = 0; k < n; k++)
                    {
                        for (int l = 0; l < n; l++)
 
                            if (matrix[k,l] > max)
                            {
                                max = matrix[k, l];
                                textBox2.Text = Convert.ToString(max);
                                textBox3.Text = Convert.ToString(k);
                                textBox4.Text = Convert.ToString(l);
                            }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2012, 16:23
Ответы с готовыми решениями:

Не находит максимальный индекс после 10 в xml базе данных
Всем здравствуйте. Собственно проблема такая : приложение записывает инфу в хмл бд, и извлекает из...

что не правильно находит максимальный элемент
import java.util.Scanner; import java.util.Arrays; public class apple1 { /** * @param args...

Почему максимальный элемент в столбце находит правильно, а выводит индексы не те
void maxElCol(int** arr, int size) { int index1 = 0; int index2 = 0; for (int j = 0;...

Ошибка в коде, индекс находился вне границ массива
здравствуйте, помогите, пожалуйста, в решении проблемы в коде. Задание к данной программе: В...

1
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
18.09.2012, 16:40 2
1) циклы закрывать нннада?
у тебя при матрице 5х5 создается 25 слоев текстбоксов
видишь ты напоминаю только один
перед объявлением максимума надо цикл закрыть
2)
C#
1
2
3
4
5
6
                     for (int k = 0; k < n; k++)
                        for (int l = 0; l < n; l++)
                        {
                            matrix[k, l] = rnd.Next(50);
                            t[i, j].Text = Convert.ToString(matrix[k, l]);
                        }
что бы тут могло быть не так? k,l!=i,j
матрица у вас тоже создается 25 раз (если закрыть цикл, если не закрывать - 625 раз, по разу на каждый текстбокс в каждом из 25 слоев текстбоксов)
естественно итоговая матрица и записанная в текстбоксы НЕ равны
верный код:
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
        private void button1_Click(object sender, EventArgs e)
        {
            Random rnd = new Random();
            int n = int.Parse(textBox1.Text);
            int[,] matrix = new int[n, n];
            TextBox[,] t = new TextBox[n, n];
            for (int i = 0; i < n; i++)
                for (int j = 0; j < n; j++)// проходим по елементам масива
                {
                    t[i, j] = new TextBox();//для каждого елемента массива создаем текстбокс
                    t[i, j].Location = new Point(i * 70 + 20, j * 20 + 20);//привязываем расположение тексбоксов к индексам масива чтоб они не налаживались друг на друга
                    t[i, j].Size = new Size(70, 20);//размеры текстбокса
                    panel1.Controls.Add(t[i, j]);//добавляем текстбоксы на панель
                    matrix[i, j] = rnd.Next(50);
                    t[i, j].Text = Convert.ToString(matrix[i, j]);
                }
            int max = matrix[0, 0];
            for (int k = 0; k < n; k++)
                for (int l = 0; l < n; l++)
                    if (matrix[k, l] > max)
                    {
                        max = matrix[k, l];
                        textBox2.Text = Convert.ToString(max);
                        textBox3.Text = Convert.ToString(k);
                        textBox4.Text = Convert.ToString(l);
                    }
        }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2012, 16:40
Помогаю со студенческими работами здесь

Переписать код, не используя break и найти почему не всегда считает правильно, в чём ошибка?
const nmax = 100; var a: array of real; n, i, j, imin, jmin: byte; buf, s: real; ...

Найти максимальный нечетный элемент массива (ошибка в коде)
Не пойму почему программа не работает как нужно ( выводит хаотично введенное число, а не то которое...

BIOS не всегда находит HDD
Материнка: Gigabyte GA-H81M-S2V Hdd: Seagate 1000 GB SATA при запуске компа ( в первый раз) не...

Ошибка в коде. Почему не правильно вызываю функцию?
Собственно вот код ошибки. 18 8 D:\C++\Task7.1.1.cpp case label value is less than minimum value...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru