1

Тема: Фарбування кольором ячейки зі значенням максимуму двовимірного масиву

У мене є двовимірний масив випадкових цілих чисел, які знаходяться в масиві текстбоксов. Я знайшла максимум і вивела його на Label1. Все вийшло. Але мені ще потрібно зафарбувати кольором той тектбокс, в якому знаходиться цей максимум. У мене були версії, але невдало. Допоможіть будь ласка, хто знає, де тут помилка?

int max = Convert.ToInt32(t[0, 0].Text);
for (i = 0; i < x; i++)
{
    for (j = 0; j < y; j++)
    {
        if (Convert.ToInt32(t[i, j].Text) > max)
        {
            max = Convert.ToInt32(t[i, j].Text);
            t[i, j].BackColor = Color.Red;
            label1.Text = "" + max;
        }
    }
}

2

Re: Фарбування кольором ячейки зі значенням максимуму двовимірного масиву

Описуйте, в чому помилка. Бо цей код, як я бачу, таки має зафарбувати потрібну комірку

Прихований текст

і ще декілька

А так - запам'ятовуйте крім одного значення max ще два: max_i та max_j. Тобто в циклі замість одного

max = ...

робіть

max = ...
max_i = i;
max_j = j;

тоді після циклу ви матимете координати комірки, яку треба перефарбувати, і зможете це зробити.
Крім того:
- читайте значення один раз:

int value = Convert.ToInt32(t[i, j].Text);
if( value > max ) 
{
    max = value;
    ....

- змінюйте label1.Text на max один раз, після циклу;
- користуйтеся на форумі тегом code (кнопка <>).

3

Re: Фарбування кольором ячейки зі значенням максимуму двовимірного масиву

Дякую велике за допомогу. Помилка в тому, що крім комірки з макимальним значенням зафарбовуються ще декілька і я не можу зрозуміти чому. Ще, після кожної генерації нового масива їх фарбується все більше і більше. Також, я зробила ще значення max_i та max_j, нічого не змінилося. Мабуть, я щось не те зрозуміла.

int max = Convert.ToInt32(t[0, 0].Text);
for (i = 0; i < 5; i++)
{
    for (j = 0; j < 4; j++)
    {
        int v = (Convert.ToInt32(t[i, j].Text));
        if (v > max)
        {
            max = v;
            max_i = i;
            max_j = j;
            t[max_i, max_j].BackColor = Color.Red;
        }
    }
}

label1.Text = "" + max;

4 Востаннє редагувалося koala (20.11.2019 16:04:20)

Re: Фарбування кольором ячейки зі значенням максимуму двовимірного масиву

тоді після циклу ви матимете координати комірки, яку треба перефарбувати, і зможете це зробити.

тоді після циклу ви матимете координати комірки

після циклу

після циклу

5

Re: Фарбування кольором ячейки зі значенням максимуму двовимірного масиву

Дякую, все працює!