Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2020, 12:04   #1
Alik23
Новичок
Джуниор
 
Регистрация: 06.12.2020
Сообщений: 1
По умолчанию Двумерный массив

Задание:Задан двумерный массив a. Если в строке имеется хотя бы один нуль, то заменить все элементы этой строки на максимальный элемент этой строки. В компонент ListBox вывести номера таких строк.
Надо сделать в Windows Forms.Он определяет строку в которой есть ноль,но не заменяет все элементы строки на максимльный элемент.Помогите исправить

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int n; // количество строк матрицы
        int m; // количество столбцов матрицы

        private void button1_Click(object sender, EventArgs e)
        {
            int i, j;
            n = Convert.ToInt32(textBox1.Text);
            m = Convert.ToInt32(textBox2.Text);
            //устанавливаем количество строк и столбцов таблицы
            dataGridView1.RowCount = n;
            dataGridView1.ColumnCount = m;
            int[,] a = new int[n, m];
            Random rnd = new Random();

            // Заполняем массив случайными значениями
            for (i = 0; i < n; i++)
                for (j = 0; j < m; j++)
                    a[i, j] = rnd.Next(-10, 10);

            // Два цикла перебирают все элементы массива
            for (i = 0; i < n; i++)
                for (j = 0; j < m; j++)
                    // Заполняем ячейки таблицы элементами массива
                    dataGridView1.Rows[i].Cells[j].Value = a[i, j];

        }

        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            int i, j, max,k,kmaxj;
            int[,] a = new int[n, m];  
            // два цикла перебирают все ячейки таблицы
            for (i = 0; i < n; ++i)
                for (j = 0; j < m; ++j)
                    // Заполняем элементы массива, данные берём из ячеек таблицы
                    a[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);

            
    
                // Максимальный элемент каждой строки

                for (i = 0; i < n; i++)
                {
                    max = a[i, 0];
                    k = 0;
                kmaxj = 0;    
                for (j = 0; j < m; j++)
                {
                    if (a[i, j] == 0)
                        k++;
                    if (max < a[i, j])
                    {
                        max = a[i, j];
                        kmaxj = j;
                    }
                   
                }
                if (k >= 1)
                {
                        for (j = 0; j < m; j++)
                        a[i, j] = a[i,kmaxj];
                    listBox1.Items.Add("Строка - " + Convert.ToString(i+1));
                }
                
                }
                
           

            

        }
    }
}
Вложения
Тип файла: rar Lab.rar (33.9 Кб, 0 просмотров)
Alik23 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передать двумерный массив Variant из VBA в dll C++, передать двумерный массив Variant из VBA в dll C++ и вернуть их после обработки обратно в VBA. maxPo Microsoft Office Excel 0 24.11.2017 17:29
Переписывая все в новый массив,добавить в двумерный массив столбец с заданным номером. anasttb Общие вопросы C/C++ 0 24.05.2017 12:15
Программирование в VBA: двумерный массив M на N, нужно создать новый одномерный массив TheAnnihilyator Помощь студентам 1 04.06.2014 09:16
Java: Дан двумерный массив чисел А размером 6х6 и одномерный массив Х из 6-ти чисел. Заменить первые три строки массива A vikysha55 Помощь студентам 1 16.04.2014 10:50
Двумерный массив развернуть в одномерный массив по строкам[QBASIC] TrueStyle777 Помощь студентам 3 29.05.2013 21:56