Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
1

После ключевого слова return не должно присутствовать выражение объекта

25.11.2011, 12:04. Показов 7647. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Изначально имелась задача и я её реализовал вот так
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace F_01_L_5
{
    public class Task2
    {
        const int M = 6;
 
        int[,] ar = new int[M, M];
        ArrayTask2 at2 = new ArrayTask2();
        ArrayPrint2 ap2 = new ArrayPrint2();
 
        public void DoIt()
        {
            try
            {
                if (at2.DoIt("Task1.txt", ar))
                {
                    Calc();
                    ap2.DoIt(ar);
                }
            }
            catch
            {
                Console.WriteLine("Ошибка выполнения опции2");
            }
        }
 
        private void Calc()
        {
            int stroka = M;
            bool allnegative;
 
            for (int i = 0; i < M; i++)
            {
                allnegative = false;
                for (int j = 0; j < M; j++)
                {
                    if (ar[i, j] > 0)
                    {
                        allnegative = true;
                        break;
                    }
                }
                if (allnegative)
                {
                    stroka = i;
                    break;
                }
            }
 
            if (stroka == M)
                Console.WriteLine("В данном масиве нет строк содержащих все отрицательные элементы");
 
            else
                Console.WriteLine();
            Console.WriteLine("строка = {0}", stroka);
            Console.WriteLine();
        }
    }
}
Но потом поменяли задание , и отдельно , не вписывая в эту прогу его реализация выглядит вот так":
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 public double Max(int width, int height,int[,] array)
        {
            int[] OneDArray = new int[width * height];
            int count = 0, max = 0;
              for (int i = 0; i < width; i++)
                for (int j = 0; j < height ; j++)
                {
                    OneDArray[count] = array[i, j];
                    count++;
                }
              Array.Sort(OneDArray);
              Array.Reverse(OneDArray);
              int min = OneDArray[0];
              for (int i = 0; i < OneDArray.Length; i++)
                  if (OneDArray[i] < min) min = OneDArray[i];
              for (int i = 0; i < OneDArray.Length - 1; i++)
                  if (OneDArray[i] == OneDArray[i + 1]) { max = OneDArray[i]; break; }
                  else max = 0;
            return max;
       
        }
Вот мой вариант реализации , но неувязка с ним
обьясните плз в чём ошибка



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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace F_01_L_5
{
    public class Task2
    {
        const int M = 6;
 
        int[,] ar = new int[M, M];
        ArrayTask2 at2 = new ArrayTask2();
        ArrayPrint2 ap2 = new ArrayPrint2();
 
        public void DoIt()
        {
            try
            {
                if (at2.DoIt("Task1.txt", ar))
                {
                    Calc();
                    ap2.DoIt(ar);
                }
            }
            catch
            {
                Console.WriteLine("Ошибка выполнения опции2");
            }
        }
 
 
        private void Calc()
        {
            int[] OneDArray = new int[M * M];
            int count = 0, max = 0;
            for (int i = 0; i < M; i++)
                for (int j = 0; j < M; j++)
                {
                    OneDArray[count] = ar[i, j];
                    count++;
                }
            Array.Sort(OneDArray);
            Array.Reverse(OneDArray);
            int min = OneDArray[0];
            for (int i = 0; i < OneDArray.Length; i++)
                if (OneDArray[i] < min) min = OneDArray[i];
            for (int i = 0; i < OneDArray.Length - 1; i++)
                if (OneDArray[i] == OneDArray[i + 1]) { max = OneDArray[i]; break; }
                else max = 0;
            return max;
 
        }
    }
}
обьясните плз в чём ошибка
Вот что он выдаёт (только начал изучение , не судите строго )
"F_01_L_5.Task2.Calc()" возвращает значение void, поэтому после ключевого слова return не должно присутствовать выражение объекта
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2011, 12:04
Ответы с готовыми решениями:

Ошибка выражение должно представлять собой указатель на полный тип объекта
По заданию, из матрицы нужно исключить столбец и строку, которые пересекают элемент с наибольшим по...

Ошибка:выражение должно представлять собой указатель на полный тип объекта
Доброго времени суток! Простенький код, но не получается. using namespace std;...

Вывод символов после ключевого слова
Как из файла вывести все имеющиеся совпадения например со словом &quot;номер&quot; и последующие 12 символов,...

Вывод символов после ключевого слова
Как из файла вывести все имеющиеся совпадения например со словом &quot;номер&quot; и последующие 12 символов,...

8
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
25.11.2011, 12:41 2
Ну ты бы описал задание поподробнее.
Так то очевидно, что если в описании функции:
C#
1
private void Calc()
стоит void, значит что эта функция ничего не возвращает
а у тебя
C#
1
return max;
а такого не может быть
должно быть просто return.

Ну так в чём смысл задания?

Добавлено через 1 минуту
тебе нужно вывести этот max?
ну так замени void на int
и будет:
int max = Calc();
и потом используй этот max в основной функции
0
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
25.11.2011, 12:54  [ТС] 3
максимальное из чисел , встречающаяся в этой матрице более 1 раза
0
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
25.11.2011, 13:01 4
ну я вам расписал как можно получить это число на выходе из функции Calc. А дальше уже что хотите с ним делайте...(что делают ваши остальные куски кода непонятно)
0
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
25.11.2011, 13:44  [ТС] 5
Т.е. там принцив в чём - при вводе в консоль 2 , происходит выполнение этого задания
0
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
25.11.2011, 13:48 6
в общем вместо
C#
1
 return max;
напишите
C#
1
Console.WriteLine("вот она - рыба моей мечты: {0}",max);
и всё будет хорошо
1
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
25.11.2011, 13:53  [ТС] 7
Эх если бы=((
0
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
25.11.2011, 13:53 8
Не работает так что ли? )
1
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
25.11.2011, 14:02  [ТС] 9
Да трабла не в этом , сама прога блин не пашет , при обоих вариантах , она ничего не выводит=\
не хватает чего то , а у мя блин башка ужо не варит ваще

Добавлено через 1 минуту
ну я имею в виду при замене воед на инт или при замене его но рыбу мечты=)
Щя посмотрю мб у меня просто в ассиве нету чисел удовлетворяющих условию=))

Добавлено через 1 минуту
Вобщем я идиот=)
у меня просто не было чисел , подходящих под условие=)))))

Добавлено через 33 секунды
servitola, Спасибо вобщем=)
0
25.11.2011, 14:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2011, 14:02
Помогаю со студенческими работами здесь

Ключевое слово const после ключевого слова new
Наткнулся на такую запись const int* ciq = new const int (3); Какую роль играет const после new?

Что означает выражение стоящее после return?
Всем привет. Довольно часто в уроках по c++. Вижу после написания программы либо функциии....

В названии файла Excel должно присутствовать численное значение найденной концентрации – k
Здравствуйте! Провожу вычисления для разных концентраций. Для записи полученного результата в...

Парсинг текста: вытащить подстроку в скобках после ключевого слова
Есть например стока: 'ergfijeroigjergioerTEXT{Hello world}erhryjhrgerfer' Как можно вытащить...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru