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

указатель на функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица, последовательность, координаты http://www.cyberforum.ru/cpp-beginners/thread291972.html
Здравствуйте, помогите решить в Си 1) Прочитать текстовый файл и подсчитать количество слов в нём (слова разделены пробелами, запятыми и точками). Имя файла передаётся через командную строку. 2) Вводится последовательность целых чисел и записывается в двусвязный список. Удалить из этого списка элементы с минимальным значением. 3) Написать программу для определения положения точки с...
C++ Умножение матриц Задача такая : Для заданой квадратической матрицы А заданого порядка n найти произведение А * В, где элементы матрицы В узнаются за формулой : Bij = 1/(i+j-1) i.j = целые больше ноля Вот что получилось: #include <iostream> #include <cstdlib> #include <stdio.h> #include <conio.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread291970.html
Возврат строки из функции по указателю C++
Здравствуйте. Обьясните пожалуйсто, почему компилятор выдает предупреждение при выполнении следующего кода и почему строка возвращается не полностью ? #include "windows.h" #include <iostream> using namespace std; char *func() { char arr="stro4ka"; return arr;
запись строк в многомерный массив C++
Здравствуйте. Подскажите пожалуйсто, как записать строки в многомерный массив. Я делаю так: #include "windows.h" #include <iostream> using namespace std; int main() { char mass;//заранее созданный массив для имен
C++ Создать stl очередь, заполнить ее случайным образом и отсортировать http://www.cyberforum.ru/cpp-beginners/thread291931.html
вопрос в заголовке, заранее спасибо.
C++ Реализация алгоритмов библиотеки STL Ребят помогите пожалуйста, как создать програмку, которая бы создавала массив 4 на 3, и заполняла его рандомом. Еще нужно потом вывести содержимое этого массива в 3 столбца, в первом столбце выводить числа в десятеричном формате , во втором в шестнадцетиричном формате , в третьем в восьмеричном формате. спасибо заранее... подробнее

Показать сообщение отдельно
ol4ik
 Аватар для ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
09.05.2011, 23:05     указатель на функцию
Функция должна сортировать и по возрастанию,и по убыванию с помощью бинарных предикатов.И ещё отсортировать элементы массива по возрастанию их синуса.
Программа работает только в одном случае,а для синусов вообще не работает. Объясните,в чём моя ошибка,а точнее,как сделать,чтобы функция сортировала правильно для всех трёх случаев.
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
 
bool compare1(double a,double b)
{ return a<b;
}
 
bool compare2(double a,double b)
{ return a>b;
}
bool compareSin(double a,double b)
{return sin(a)<sin(b);}
 
double sort(double * inArr,int len,bool (*pfun)(double,double))
{ double swap;
   for (int i=0;i<len; i++)
    {for (int j=0; j<len-i; j++) 
        { if (pfun(inArr[j],inArr[j+1])==true) 
            {
               swap=inArr[j]; 
               inArr[j]=inArr[j+1];
               inArr[j+1]=swap;
            }
        }
}
   for(int i=0;i<len; i++)
   cout<<inArr[i];
   return 0;
}
 
 
int main()
{double *inArr=new double(10);
 int len;
 cout<<"enter LENGTH\n";
 cin>>len;
 cout<<"enter MASSIV\n";
 for(int i=0;i<len;i++)
 {  cout<<"inArr["<<i<<"]=";
    cin>>inArr[i];}
 sort(inArr,len,compare1);
 printf("\n");
 sort(inArr,len,compare2);
 printf("\n");
 sort(inArr,len,compareSin);
 getch();
 return 0;
}
Добавлено через 1 час 6 минут
оказалось,что swap-это стандартная функция
но всё равно ошибка не в этом
нужно уместить возможность сортировки по убыванию и возрастанию,и понять,что делать для сортировки по синусам

Добавлено через 39 минут
работает,если использовать сортировку
C++
1
2
3
4
5
6
7
while (len>0){
  len--;
int i=0;
while (i<len) {
  if ( pfun(inArr[i], inArr[i+1]) )
    swap (inArr[i],inArr[i+1]);
  i++; }  }
но желательнее,чтобы программа правильно работала с использованием метода пузырька(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru