Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
0 / 0 / 1
Регистрация: 31.01.2012
Сообщений: 30

Ругается на метод "Ни одна из перегрузок метода "Change" не принимает "1" аргументов"

17.01.2013, 02:30. Показов 5248. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите, пожалуйста, разобраться где у меня ошибка в программе.
Дан массив размером n×n, элементы которого целые числа.
Поменять местами два средних столбца, если количество столбцов четное, и первый со средним столбцом, если количество столбцов нечетное.

VS 2012 пишет
Кликните здесь для просмотра всего текста
Ошибка 1 Ни одна из перегрузок метода "Change" не принимает "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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace mass4
{
    class Class
    {
        static int[,] Input(out int n, out int m)
        {
            Console.WriteLine("введите размерность массива");
            Console.Write("n = ");
            n = int.Parse(Console.ReadLine());
            Console.Write("m = ");
            m = int.Parse(Console.ReadLine());
            int[,] a = new int[n, m];
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < m; ++j)
                {
                    Console.Write("a[{0},{1}]= ", i, j);
                    a[i, j] = int.Parse(Console.ReadLine());
                }
            return a;
        }
 
 
        static void Print(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i, Console.WriteLine())
                for (int j = 0; j < a.GetLength(1); ++j)
                    Console.Write("{0,5} ", a[i, j]);
        }
 
 
        static void Change (int[,] a, int k)
        {
                        for (int i = 0; i < a.GetLength(0); ++i)
                            for (int j = 0; j < a.GetLength(1); ++j)
                            {
                                if (j % 2 == 0)
                                {
                                    k = a[i, j / 2];
                                    a[i, j / 2] = a[i, j / 2 + 1];
                                    a[i, j / 2 + 1] = k;
                                }
 
                                else
                                {
                                    k = a[i, j / 2 + 1];
                                    a[i, j / 2 + 1] = a[i, 1];
                                    a[i, 1] = k;
                                }
                            }
                        return;
 
        }
 
 
        static void Main()
        {
            int n, m;
            int[,] myArray = Input(out n, out m);
            Console.WriteLine("Исходный массив:");
            Print(myArray);
            Change(myArray);
            Console.WriteLine("Измененный массив:");
            Print(myArray);
            Console.ReadLine();
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2013, 02:30
Ответы с готовыми решениями:

Ни одна из перегрузок метода не принимает 1 аргументов
я не очень хорошо понимаю метод рекурсии, кто может помочь найти ошибку? ошибка в названии темы. Z(p-1) ни одна из перегрузок метода не...

Ни одна из перегрузок метода Insert не принимает 6 аргументов
Здравствуйте Заранее прошу прощения если такая тема уже была(если это так то я ее не нашел) Суть в чем У меня информация из SQL...

Ни одна из перегрузок метода QuickSorting не принимает 1 аргументов
прошу помочь, не могу понять как исправить ошибку. public Form1() { InitializeComponent(); ...

9
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.01.2013, 02:53
Trex_22, ну так читайте, что вам студия говорит-то, но еще и понимайте, желательно
у вас сигнатура метода
C#
1
static void Change (int[,] a, int k)
А передаете что?
C#
1
Change(myArray);
0
0 / 0 / 1
Регистрация: 31.01.2012
Сообщений: 30
17.01.2013, 04:20  [ТС]
если я вас правильно понял то
Кликните здесь для просмотра всего текста

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace mass4
{
    class Class
    {
        static int[,] Input(out int n, out int m)
        {
            Console.WriteLine("введите размерность массива");
            Console.Write("n = ");
            n = int.Parse(Console.ReadLine());
            Console.Write("m = ");
            m = int.Parse(Console.ReadLine());
            int[,] a = new int[n, m];
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < m; ++j)
                {
                    Console.Write("a[{0},{1}]= ", i, j);
                    a[i, j] = int.Parse(Console.ReadLine());
                }
            return a;
        }
 
 
        static void Print(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i, Console.WriteLine())
                for (int j = 0; j < a.GetLength(1); ++j)
                    Console.Write("{0,5} ", a[i, j]);
        }
 
 
        static void Change (int[,] a)
        {
            
                        for (int i = 0; i < a.GetLength(0); ++i)
                            for (int j = 0; j < a.GetLength(1); ++j)
                            {
                                if (j % 2 == 0)
                                {
                                    
                                    int k = a[i, j / 2];
                                    a[i, j / 2] = a[i, j / 2 + 1];
                                    a[i, j / 2 + 1] = k;
                                }
 
                                else
                                {
                                   
                                    int k = a[i, (j + 1) / 2];
                                    a[i, (j + 1) / 2] = a[i, 1];
                                    a[i, 1] = k;
                                }
                            }
                        return;
 
        }
 
 
        static void Main()
        {
            int n, m;
            int[,] myArray = Input(out n, out m);
            Console.WriteLine("Исходный массив:");
            Print(myArray);
            Change(myArray);
            Console.WriteLine("Измененный массив:");
            Print(myArray);
            Console.ReadLine();
        }
    }
}

также немного поправил код, вроде всё логично, но задача работает неправильно, ошибок не выдаёт - просто столбцы меняет не так как надо по условию
0
28 / 28 / 10
Регистрация: 10.03.2012
Сообщений: 249
17.01.2013, 10:41
Цитата Сообщение от Trex_22 Посмотреть сообщение
также немного поправил код, вроде всё логично, но задача работает неправильно, ошибок не выдаёт - просто столбцы меняет не так как надо по условию
Это уже не студия виновата. Проанализируйте свой код и исправьте его.
0
 Аватар для ITL
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
17.01.2013, 11:34
Цитата Сообщение от Trex_22 Посмотреть сообщение
также немного поправил код, вроде всё логично, но задача работает неправильно, ошибок не выдаёт - просто столбцы меняет не так как надо по условию
Ну дак естественно, у вас метод построен так, сначала берется строка , и в ней смотрятся все элементы j по одному , т. е 1 элемент столбца, а не весь столбец. И вы меняете тот 1 элемент j местами с другим элементом.
0
0 / 0 / 1
Регистрация: 31.01.2012
Сообщений: 30
17.01.2013, 19:26  [ТС]
Перелапатил код метода Change, странно то что на Pascal-е подобная задача решается спокойно, а тут уже голова кругом
Есть идеи у кого?
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
static void Change(int[,] a)
        {
 
            for (int i = 0; i < a.GetLength(0); ++i)
            
                for (int j = 0; j < a.GetLength(1); ++j)
                {
                    if (j % 2 != 0) //четные элементы
                    {
 
                        int k1 = a[i, j / 2];
                        a[i, j / 2] = a[i, j / 2 + 1];
                        a[i, j / 2 + 1] = k1;
 
                    }
 
                    if (j % 2 != 1) //нечетные элементы
                    {
 
                        int k2 = a[i, j / 2];
                        a[i, j / 2] = a[i, 0];
                        a[i, 0] = k2;
                    }
                }
            
            return;
 
        }
P. S.
Кликните здесь для просмотра всего текста
Нужно поменять местами два средних столбца, если количество столбцов четное, и первый со средним столбцом, если количество столбцов нечетное.


Добавлено через 40 минут
Вот переделал снова, но тут для нечётного количества всё правильно работает а для чётного нет

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace mass4
{
    class Class
    {
        static int[,] Input(out int n)
        {
            Console.WriteLine("введите размерность массива");
            Console.Write("n = ");
            n = int.Parse(Console.ReadLine());
            int[,] a = new int[n, n];
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < n; ++j)
                {
                    Console.Write("a[{0},{1}]= ", i, j);
                    a[i, j] = int.Parse(Console.ReadLine());
                }
            return a;
        }
 
 
        static void Print(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i, Console.WriteLine())
                for (int j = 0; j < a.GetLength(1); ++j)
                    Console.Write("{0,5} ", a[i, j]);
        }
 
 
        static void Change(int[,] a)
        {
 
            if (a.GetLength(1) % 2 == 0) //чётное
            {
                for (int i = 0; i < a.GetLength(0); i++)
                
                    for (int j = 0; j < a.GetLength(1); j++)
                    {
                        int k1 = a[i, j / 2];
                        a[i, j / 2] = a[i, j / 2 + 1];
                        a[i, j / 2 + 1] = k1;
                    }
                  
                
                return;
            }
            else //нечётное
            {
                for (int i = 0; i < a.GetLength(0); i++)
                
                    for (int j = 0; j < a.GetLength(1); j++)
                    {
                        int k2 = a[i, j / 2];
                        a[i, j / 2] = a[i, 0];
                        a[i, 0] = k2;
                    }
                  
                
                return;
            }
        }
 
 
        static void Main()
        {
            int n;
            int[,] myArray = Input(out n);
            Console.WriteLine("Исходный массив:");
            Print(myArray);
            Change(myArray);
            Console.WriteLine("Измененный массив:");
            Print(myArray);
            Console.ReadLine();
        }
    }
}
0
28 / 28 / 10
Регистрация: 10.03.2012
Сообщений: 249
17.01.2013, 19:57
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int m = int.Parse(Console.ReadLine());
            int[,] a = new int[n, m];
            Random r = new Random();
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    a[i, j] = r.Next(9);
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                    Console.Write(a[i, j] + " ");
 
                Console.WriteLine();
            }
 
            Console.WriteLine();
            Console.WriteLine();
            Change(ref a);
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                    Console.Write(a[i, j] + " ");
 
                Console.WriteLine();
            }
 
            Console.WriteLine(a.GetLength(1));
            Console.ReadKey();
        }
 
        static void Change(ref int[,] a)
        {
            int k = 0;
            if (a.GetLength(1) % 2 != 0)
            {
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    k = a[i, 0];
                    a[i, 0] = a[i, a.GetLength(1) / 2];
                    a[i, a.GetLength(1) / 2] = k;
                }
            }
            else
            {
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    k = a[i, a.GetLength(1) / 2 - 1];
                    a[i, a.GetLength(1) / 2 - 1] = a[i, a.GetLength(1) / 2];
                    a[i, a.GetLength(1) / 2] = k;
                }
            }           
        }
    }
}
1
 Аватар для ITL
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
17.01.2013, 20:05
Trex_22, я озадачен Во-первых , зачем вам return в методах, которые не возвращают значение, а во-вторых, у вас интересно работает метод для не четных чисел, сначала он меняю 0 столбец с первым, потом опять меняет 0 с первым, затем опять цикл. Дело в том, что он просматривает каждый столбец, а при делении переменной типа int 0\2 = 0, 1\2 = 0 , 3\2 = 1 и.т.д , я думаю вы поняли, оно отбрасывает остаток.
Но как бы там ни было, для четных у вас не правильно поставлено условие на поиск среднего столбца, вот решение:
C#
1
2
3
4
5
6
7
8
9
10
11
if (a.GetLength(1) % 2 == 0) //чётное
            {
                for (int i = 0; i < a.GetLength(0); i++)
 
                    for (int j = a.GetLength(1)/2-1; j < a.GetLength(1)/2; j++)
                    {
                        int k1 = a[i, j];
                        a[i, j] = a[i, j + 1];
                        a[i, j + 1] = k1;
                    }
            }
1
0 / 0 / 1
Регистрация: 31.01.2012
Сообщений: 30
17.01.2013, 20:19  [ТС]

Не по теме:

Цитата Сообщение от ITL Посмотреть сообщение
Во-первых , зачем вам return в методах, которые не возвращают значение
Так часто переворачивал код, извращался как мог :)

Цитата Сообщение от ITL Посмотреть сообщение
во-вторых, у вас интересно работает метод для не четных чисел, сначала он меняю 0 столбец с первым, потом опять меняет 0 с первым, затем опять цикл
Извращался как мог :)


В общем - спасибо огромное!!!
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.01.2013, 20:31
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
38
39
40
41
42
43
44
45
46
47
48
49
using System;
 
namespace ArrayChange
{
    class Program
    {
        static void Main()
        {
            int n = 6;//int.Parse(Console.ReadLine());
            int m = 5;//int.Parse(Console.ReadLine());
            int[,] a = new int[n, m];
            var r = new Random();
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    a[i, j] = r.Next(9);
            PrintArray(a);
            if (a.GetLength(0) % 2 == 0)
                SwapRows(ref a, a.GetLength(0) / 2, (a.GetLength(0) + 1) / 2);
            else
                SwapRows(ref a, a.GetLength(0) / 2, 1);
            PrintArray(a);
            Console.ReadKey();
        }
 
 
        private static void SwapRows(ref int[,] a, int k, int m)
        {
            int y = m - 1;
            for (int i = 0; i < a.GetLength(1); i++)
            {
                var temp = a[k, i];
                a[k, i] = a[y, i];
                a[y, i] = temp;
            }
        }
 
 
        static void PrintArray(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                    Console.Write(a[i, j] + " ");
                Console.WriteLine();
            }
            Console.WriteLine();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2013, 20:31
Помогаю со студенческими работами здесь

Ошибка:Ни одна из перегрузок метода Read не принимает 1 аргументов
sing System; using System.Collections.Generic; namespace ConsoleApp2 { class Worker { public static string...

Как исправить ошибку(ни одна из перегрузок метода sin не принимает 2 аргументов)
Собственно вопрос в название темы. y=sin^3(x^2+a)^2-√x/b Код: Console.WriteLine(&quot;Введите x:&quot;); float x =...

Ни одна из перегрузок метода Insert не принимает 3 аргументов
Здравствуйте! У меня информация с MS Acces заливается в DataGridViev1, на форме есть Textbox и кнопка добавить, т.е при заполнении...

Ошибка, ни одна из перегрузок метода "Update" не принимает 4 аргументов
Хочу создать кнопку для сохранения записей в БД, но я не знаю почему выделяет красным Update. textBox1 это первичный ключ (не счетчик),...

Ни одна из перегрузок метода "Max" не принимает трех аргументов
Ни одна из перегрузок метода &quot;Max&quot; не принимает трех аргументов private void button1_Click(object sender, EventArgs e) { ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru