Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2014, 01:23   #1
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию [Error] void value not ignored as it ought to be

Поиском пользоваться умею, но ответа так и не нашел.Хочу заполнить массив значениями из функции, но выдает данную ошибку.Это связано с разыменованием или тем что мне нужно делать это в отдельной функции, а не int main?
PHP код:
        for (j=0j<4j++)
    {
           
copy (cm1m1col1);
           
copy (cm2m2col2);
           
copy (cm3m3col3);
           
copy (cm4m4col4);
        
mas[k]=f[j](cm1col1); k++; //тут
        
mas[k]=f[j](cm2col2); k++; //тут
           
mas[k]=f[j](cm3col3); k++; //тут
        
mas[k]=f[j](cm4col4); k++; //тут
    

East Undia Trading вне форума Ответить с цитированием
Старый 07.05.2014, 01:28   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

1) С/C++?
2) Как объявлены все эти переменные?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.05.2014, 01:47   #3
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

BDA, С.
Код:
    void (*f[4])(int *, int) = {StraightSelection, BubbleSort1, HeapSort, QuickSort};
    int i, j, col1, col2, col3, col4, k=0;
    int *m1=(int*)malloc(N1 * sizeof(int)), *m2=(int*)malloc(N2 * sizeof(int)), *m3=(int*)malloc(N3 * sizeof(int)), *m4=(int*)malloc(N4 * sizeof(int));
	int *cm1=(int*)malloc(col1 * sizeof(int)), *cm2=(int*)malloc(col2 * sizeof(int)), *cm3=(int*)malloc(col3 * sizeof(int)), *cm4=(int*)malloc(col4 * sizeof(int));
	int *mas=(int*)malloc(16 * sizeof(int));
East Undia Trading вне форума Ответить с цитированием
Старый 07.05.2014, 02:12   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

void (*f[4])(int *, int), то есть функция ничего не возвращает, поэтому присваивать элементу массива mas нечего.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.05.2014, 03:04   #5
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

BDA, точно, спасибо.
East Undia Trading вне форума Ответить с цитированием
Старый 07.05.2014, 19:36   #6
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

BDA, а можно еще такой вопрос?Я перевел, ошибку,но в упор не вижу проблемы
East Undia Trading вне форума Ответить с цитированием
Старый 07.05.2014, 19:50   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

А как объявлена, например, функция StraightSelection?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.05.2014, 21:51   #8
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Две из сортировок.Как сделать чтобы русский текст в правильном формате копировался?
Код:
void StraightSelection (int* arr,int n)
{
   int counter=0, i, j, tmp;
    for(i=1;i<n;i++){
        for(j=i; j>0 && arr[j-1]<arr[j];j--){
            counter+=3;
            tmp=arr[j-1];
            arr[j-1]=arr[j];
            arr[j]=tmp;
        }
    }
    printf("\nСортировка вставками, кол-во перестановок: %d\n", counter);
}
East Undia Trading вне форума Ответить с цитированием
Старый 07.05.2014, 22:16   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

int (*f[4])(int *, int)
void StraightSelection (int* arr,int n)
Давайте начнём с того, зачем Вы присваиваете некие значения элементам массива mas?
Насчет русских букв - не проверял:
Код:
#include <locale.h>
#include <stdio.h>

int main(void)
{
    setlocale(LC_ALL, "Russian");
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.05.2014, 22:36   #10
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

BDA, если исправить вот так
Код:
int (*f[4]) = {StraightSelection, BubbleSort1, HeapSort, QuickSort};
то программа идет дальше ограничиваясь предупреждениями.
Я хочу создать массив функций, и заполнить значениями которые вернут функции после выполнения
Здесь я хочу чтобы функция вернула значение и записала в массив, чтобы потом удобно вывести.
Код:
    int (*f[4]) = {StraightSelection, BubbleSort1, HeapSort, QuickSort};
    int i, j, col1, col2, col3, col4, k=0;
    int *m1=(int*)malloc(N1 * sizeof(int)), *m2=(int*)malloc(N2 * sizeof(int)), *m3=(int*)malloc(N3 * sizeof(int)), *m4=(int*)malloc(N4 * sizeof(int));
	int *cm1=(int*)malloc(col1 * sizeof(int)), *cm2=(int*)malloc(col2 * sizeof(int)), *cm3=(int*)malloc(col3 * sizeof(int)), *cm4=(int*)malloc(col4 * sizeof(int));
	int *mas=(int*)malloc(16 * sizeof(int));
		
	growth_mas(m1, N1);
	growth_mas(m2, N2);
	growth_mas(m3, N3);
	growth_mas(m4, N4);
	printf ("\nУпорядоченный массив\n\n");
	
	reverse_mas(m1, N1);
	reverse_mas(m2, N2);
	reverse_mas(m3, N3);
	reverse_mas(m4, N4);
    printf ("\n\tУпорядоченный в обратном порядке\n\n");
	
	in_mas(m1, N1);
	in_mas(m2, N2);
	in_mas(m3, N3);
	in_mas(m4, N4);
	printf ("\n\tНеотсортированный массив\n\n");	   
	
		for (j=0; j<4; j++)
    {
       	copy (cm1, m1, col1);
       	copy (cm2, m2, col2);
       	copy (cm3, m3, col3);
       	copy (cm4, m4, col4);
        mas[k]=f[j](cm1, col1); k++;
        mas[k]=f[j](cm2, col2); k++;
       	mas[k]=f[j](cm3, col3); k++;
        mas[k]=f[j](cm4, col4); k++;
    }
Далее вот такие ошибки
East Undia Trading вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
void* в C# BodyZ C# (си шарп) 3 27.10.2012 04:43
Ошибка: error C2783: 'T __cdecl sumF(void)' : could not deduce template argument for 'T' julia9311 Общие вопросы C/C++ 6 04.07.2012 07:34
error C2440. Как конвертировать в 'void ' из 'char ' Mrbober Общие вопросы C/C++ 4 14.03.2011 22:43
void to struct (C++) slim>>> Помощь студентам 1 13.01.2011 20:52
Загадка void`а Voipp Общие вопросы C/C++ 4 08.09.2009 17:29