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

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

Восстановить пароль Регистрация
 
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 284
12.02.2013, 02:49     непринимает функцию #1
подскажите пожалуйста, почему не принимает функцию (та что закоментирована), а возмущается на тип данных, я уже какой тип не пробывал ставить всеравно не как и ище возмущает в 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++ Написать функцию, которая могла бы передать значение в другую функцию
как мне функцию одного класса в функцию базового вставить C++
C++ Напишите функцию, которая вычисляет сигнум-функцию числа
C++ Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда, описать функцию IsSquare(K)
не могу разобраться как написать функцию сортировки и исправить функцию добавления в стек C++
C++ Задачка на массивы (описать функцию случайной генерации элементов массива, а за тем логическую функцию)
C++ рекурсия.написать функцию,принимающую указ. на другую функцию, осуществл. некую операцию с переданным х
Запилить функцию-аллюзию на функцию switch(), принимающую буквенные значения C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MihalNik
55 / 55 / 6
Регистрация: 01.12.2012
Сообщений: 432
12.02.2013, 03:54     непринимает функцию #2
ище возмущает в case 2 и default на "i" обьявленный в первом caseкак исправить
Непосредственно в case'ах вообще ничего не объявляется, а
Ваша i существует исключительно в границах цикла for
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
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     непринимает функцию
Ответ Создать тему
Опции темы

Текущее время: 00:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru