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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2010, 19:39   #1
Ake11a
Новичок
Джуниор
 
Регистрация: 26.12.2010
Сообщений: 2
Печаль Матрица, c#

Прямоугольная матрица состоит из 0 и 1. Найти в ней номера хотя бы одной строки или хотя бы одного столбцы, не содержащих единицы, либо сообщить, что таковых нет.

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

namespace Application
{
    class Mainclass
    {
        public static void Main(string[] args)
        {
            int[,] matrix;
            int n, i, m, j;
            int otvet=-1;
            Console.WriteLine("Введите количество строк n= ");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество столбцов m= ");
            m = int.Parse(Console.ReadLine());
            matrix = new int[n, m];
            /*ввод*/
            for (i = 0; i < n; i++)
                for (j = 0; j < m; j++)
                {
                    Console.WriteLine("[{0};{1}] элемент массива = ", i, j);
                    matrix[i, j] = int.Parse(Console.ReadLine());
                }
            bool flag = true;
            for (i = 0; i < n; i++)
            {
                flag = true;
                for (j = 0; j < m; j++)
                {
                    if (matrix[i,j] != 0) flag = false;
                }
                if (flag) otvet = i;
            }
            if (otvet != -1) Console.WriteLine("{0} строка", otvet);
            else Console.WriteLine("Нет такой строки");

            for (j = 0; j < m; j++)
            {
                flag = true;
                for (i = 0; i < n; i++)
                {
                    if (matrix[i, j] != 0) flag = false;
                }
                if (flag) otvet = j;
            }
            if (otvet != -1) Console.WriteLine("{0} столбец", otvet);
            else Console.WriteLine("Нет такого столбца");
            }

        }
    }
проблема в том, что при вводе матрицы:

1 1
0 0


программа выводит

1 строка
1 столбец


что, в общем-то неправильно.

Помогите пожалуйста, завтра её нужно сдать или не получу зачёт(
Ake11a вне форума Ответить с цитированием
Старый 28.12.2010, 00:25   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

перед тем как начать проверку на столбцы , тебе надо добавить вот это перед циклом :

Код:
otvet=-1;
Вот так :

Код:
...
           if (otvet != -1) Console.WriteLine("{0} строка", otvet);
            else Console.WriteLine("Нет такой строки");

           otvet=-1;
            for (j = 0; j < m; j++)
...
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 28.12.2010, 09:15   #3
Ake11a
Новичок
Джуниор
 
Регистрация: 26.12.2010
Сообщений: 2
По умолчанию

Благодарю
Ake11a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
матрица A(m,n) Trofik9 Паскаль, Turbo Pascal, PascalABC.NET 4 12.06.2010 17:45
матрица в 1С Steisha Помощь студентам 0 27.02.2010 15:08
матрица shelest Помощь студентам 1 19.12.2009 23:28
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11