Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 312
Завершенные тесты: 1
#1

непринимает функцию - C++

12.02.2013, 02:49. Просмотров 221. Ответов 2
Метки нет (Все метки)

подскажите пожалуйста, почему не принимает функцию (та что закоментирована), а возмущается на тип данных, я уже какой тип не пробывал ставить всеравно не как и ище возмущает в case 2 и default на "i" обьявленный в первом caseкак исправить?
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
#include <iostream>
#include <functional>
#include <algorithm>
using namespace std;
int *pMas;
 
//int NumElemLessX (*pMas, int r, int x)
//{
//  int v=0;
//  for (int i=0;i<r;i++)
//  {
//      if (*(pMas+i)<x)
//          v++;
//  }
//  return v;
//}
 
float CoordSquare (float Ax, float Ay, float Cx, float Cy)
{
    float Dx, Dy, Bx, By;
    float Mx=(Cx+Ax)/2;
    float My=(Cy+Ay)/2;
    Dx=Mx-Ay+My;
    Dy=My+Ax-Mx;
    Bx=Mx+Ay-My;
    By=My-Ax+Mx;
    return Dx,Dy,Bx,By;
 
      
}
 
void main ()
{
    int b,r,x;
    float Ax,Ay,Cx,Cy;
    cout<< "Check '1' to determine the number of elements in the array than the specified value X \r\nCheck '2' to define two opposite given the other two vertices";
    while (1)
    {
        cout << "What is your check?";
        cin >> b;
        switch (b)
        {
        case 1:
//          cout <<"Enter the number of elements in the array:";
//          cin >> r;
//          int Mas[100];
//          for (int i=0;i<r;i++)
//              {
//                  Mas [i]= i;
//              }
//          pMas=Mas;
//          cout <<"Enter the value you want to find more items:";
//          cin >> x;
//          cout <<"The number of items than the specified value:" << NumElemLessX(*pMas,r,x);
            break;
        case 2:
            cout << "Enter the coordinates of Ax:";
            cin >> Ax;
            cout << "Enter the coordinates of Ay:";
            cin >> Ay;
            cout << "Enter the coordinates of Cx:";
            cin >> Cx;
            cout << "Enter the coordinates of Cy:";
            cin >> Cy;
            cout << "B("<< CoordSquare (Ax,Ay,Cx,Cy)<< CoordSquare (Ax,Ay,Cx,Cy)<<CoordSquare (Ax,Ay,Cx,Cy)<<CoordSquare (Ax,Ay,Cx,Cy)<<")";
            break;
        default :
            cout << "The check is wrong!";
            break;
        }
        if (b==1 || b==2)
            break;
    }
        scanf ("%i");
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 02:49     непринимает функцию
Посмотрите здесь:

Написать функцию, которая, в зависимости от выбора пользователя вызывает соответствующую функцию - C++
Помогите, что то я не могу понять задачи, даже не знаю с чего начать)))) 5. Написать функцию, которая, в зависимости от выбора...

рекурсия.написать функцию,принимающую указ. на другую функцию, осуществл. некую операцию с переданным х - C++
рекурсия.написать функцию,принимающую указ. на другую функцию, осуществл. некую операцию с переданным х. прога должна иметь вид...

Напишите функцию, которая вычисляет сигнум-функцию числа - C++
Напишите функцию, которая вычисляет сигнум-функцию числа. Сигнум-функция возвращает: 1 если число положительное, -1 если число...

Разработать программу, которая содержит функцию замены местами первого и последнего столбцов матрицы и функцию - C++
Разработать программу, которая содержит функцию замены местами первого и последнего столбцов матрицы и функцию,которая, первый...

Передача указателя на шаблонную функцию в другую функцию - C++
Пишу тест для нескольких улучшений квиксорта с измерением времени. Функция benchmark принимает итераторы для диапазона элементов, указатель...

Шаблоны функции и указатель на функцию передаваемый в функцию - C++
Привет! Вопрос такой: Если я пишу сортировку, например, bubbleSort и хочу помимо массива и его размера передать ещё и указатель на функцию,...

Сделать задачу через функцию (добавить функцию) - C++
#pragma hdrstop #pragma argsused #include &lt;tchar.h&gt; #include &lt;iostream.h&gt; int _tmain(int argc, _TCHAR* argv) { int...

Заменить функцию void на функцию int - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; void f(int *arr, const int N, int a) { int k = 0, v = 0; for (int...

Передача двухмерного массива из функцию в функцию - C++
Допустим у меня есть функция, в которой &quot;генерируется&quot; массив. Но нужно его передать в другую функцию, которая его выведет на экран. ...

Заменить функцию tolower на ручную функцию - C++
В общем проблема такова. Tolower работает только с англ.яз вводимых данных. А мне нужно что бы работало на рус. Какой ручной функцией...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MihalNik
55 / 55 / 6
Регистрация: 01.12.2012
Сообщений: 445
12.02.2013, 03:54     непринимает функцию #2
ище возмущает в case 2 и default на "i" обьявленный в первом caseкак исправить
Непосредственно в case'ах вообще ничего не объявляется, а
Ваша i существует исключительно в границах цикла for
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,423
12.02.2013, 04:04     непринимает функцию #3
судя по этому:
if (*(pMas+i)<x)

Тебе параметром нужен указатель на int, а значит так:

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
#include <iostream>
#include <functional>
#include <algorithm>
#include <stdio.h>
using namespace std;
int *pMas;
 
int NumElemLessX (int*pMas, int r, int x)
{
  int v=0;
  for (int i=0;i<r;i++)
  {
      if (*(pMas+i)<x)
          v++;
  }
  return v;
};
 
float CoordSquare (float Ax, float Ay, float Cx, float Cy)
{
    float Dx, Dy, Bx, By;
    float Mx=(Cx+Ax)/2;
    float My=(Cy+Ay)/2;
    Dx=Mx-Ay+My;
    Dy=My+Ax-Mx;
    Bx=Mx+Ay-My;
    By=My-Ax+Mx;
    return Dx,Dy,Bx,By;
 
      
}
 
int main ()
{
    int b,r,x;
    float Ax,Ay,Cx,Cy;
    cout<< "Check '1' to determine the number of elements in the array than the specified value X \r\nCheck '2' to define two opposite given the other two vertices";
    while (1)
    {
        cout << "What is your check?";
        cin >> b;
        switch (b)
        {
        case 1:
          cout <<"Enter the number of elements in the array:";
          cin >> r;
          int Mas[100];
          for (int i=0;i<r;i++)
              {
                  Mas [i]= i;
              }
          pMas=Mas;
          cout <<"Enter the value you want to find more items:";
          cin >> x;
          cout <<"The number of items than the specified value:" << NumElemLessX(pMas,r,x);
            break;
        case 2:
            cout << "Enter the coordinates of Ax:";
            cin >> Ax;
            cout << "Enter the coordinates of Ay:";
            cin >> Ay;
            cout << "Enter the coordinates of Cx:";
            cin >> Cx;
            cout << "Enter the coordinates of Cy:";
            cin >> Cy;
            cout << "B("<< CoordSquare (Ax,Ay,Cx,Cy)<< CoordSquare (Ax,Ay,Cx,Cy)<<CoordSquare (Ax,Ay,Cx,Cy)<<CoordSquare (Ax,Ay,Cx,Cy)<<")";
            break;
        default :
            cout << "The check is wrong!";
            break;
        }
        if (b==1 || b==2)
            break;
    }
        scanf ("%i");
 
}
только на фига ты параметром передаёшь pMas? Это же глобальный параметр, так используй его в функции, ибо к чему плодить лишние сущности? Тем более, что в NumElemLessX его значение не меняется.
Короче:

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
#include <iostream>
#include <functional>
#include <algorithm>
#include <stdio.h>
using namespace std;
int *pMas;
 
int NumElemLessX (int r, int x)
{
  int v=0;
  for (int i=0;i<r;i++)
  {
      if (*(pMas+i)<x)
          v++;
  }
  return v;
};
 
float CoordSquare (float Ax, float Ay, float Cx, float Cy)
{
    float Dx, Dy, Bx, By;
    float Mx=(Cx+Ax)/2;
    float My=(Cy+Ay)/2;
    Dx=Mx-Ay+My;
    Dy=My+Ax-Mx;
    Bx=Mx+Ay-My;
    By=My-Ax+Mx;
    return Dx,Dy,Bx,By;
 
      
}
 
int main ()
{
    int b,r,x;
    float Ax,Ay,Cx,Cy;
    cout<< "Check '1' to determine the number of elements in the array than the specified value X \r\nCheck '2' to define two opposite given the other two vertices";
    while (1)
    {
        cout << "What is your check?";
        cin >> b;
        switch (b)
        {
        case 1:
          cout <<"Enter the number of elements in the array:";
          cin >> r;
          int Mas[100];
          for (int i=0;i<r;i++)
              {
                  Mas [i]= i;
              }
          pMas=Mas;
          cout <<"Enter the value you want to find more items:";
          cin >> x;
          cout <<"The number of items than the specified value:" << NumElemLessX(r,x);
            break;
        case 2:
            cout << "Enter the coordinates of Ax:";
            cin >> Ax;
            cout << "Enter the coordinates of Ay:";
            cin >> Ay;
            cout << "Enter the coordinates of Cx:";
            cin >> Cx;
            cout << "Enter the coordinates of Cy:";
            cin >> Cy;
            cout << "B("<< CoordSquare (Ax,Ay,Cx,Cy)<< CoordSquare (Ax,Ay,Cx,Cy)<<CoordSquare (Ax,Ay,Cx,Cy)<<CoordSquare (Ax,Ay,Cx,Cy)<<")";
            break;
        default :
            cout << "The check is wrong!";
            break;
        }
        if (b==1 || b==2)
            break;
    }
        scanf ("%i");
 
}
Добавлено через 1 минуту
Цитата Сообщение от итернал Посмотреть сообщение
возмущает в case 2 и default на "i" обьявленный в первом caseкак исправить?
ты русский вообще?
Yandex
Объявления
12.02.2013, 04:04     непринимает функцию
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru