Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > [VC#] Use of unassigned local variable


Автор: masternard 10.9.2008, 14:52
Задание: В квадратной матрице поменять местами столбец, сумма элементов которого максимальна, со столбцом, содержащий последний отрицательный элемент.

Вроде все написал, но компилятор ругается на z1, z2. z1 - номер столбца, в котором сумма элементов максимальна. z2 - в котором посл. отриц. элемент.

Код
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i, j, z1, z2;
            int[,] smas = new int[5, 5];
            int[] stolb = new int[5];
            Random x = new Random();

            for (i = 0; i < 5; i++)
            {
                for (j = 0; i < 5; j++)
                {
                    smas[i, j] = x.Next(-10,10);
                    Console.Write(smas[i, j] + " ");
                }
                Console.WriteLine();
            }

            for (j = 0; j < 5; j++)
            {
                for (i = 0; i < 5; i++)
                {
                    stolb[j] += smas[i, j];
                }
            }

            int max = -1;

            for (i = 0; i < 5; i++)
            {
                if (stolb[i] > max)
                {
                    max = stolb[i];
                    z1 = i;
                }
            }

            int max2 = -1;

            for (i = 4; i < 5; i++)
            {
                for (j = 0; j < 5; j++)
                {
                    if (smas[i, j] < max2)
                    {
                        max2 = smas[i, j];
                        z2 = j;
                    }
                }
            }

            int t;

            for (i = 0; i < 5; i++)
            {
                t = smas[i, z1];
                smas[i, z1] = smas[i, z2];
                smas[i, z2] = t;
            }

            for (i = 0; i < 5; i++)
            {
                for (j = 0; j < 5; j++)
                {
                    Console.Write(smas[i, j] + " ");
                }
                Console.WriteLine();
            }
        }
    }
}

Автор: Bishop 10.9.2008, 15:41
masternard, 
Код
int i, j, z1 = 0, z2 = 0;

Автор: masternard 10.9.2008, 16:18
Спс. Глупая ошибка =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)