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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2011, 09:54   #1
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию Динамические массивы

Нужно написать программу с использованием динамических массивов, вот участок на котором случается неразбериха:
Код:
#include<stdio.h> 
#include<iostream>
#include<math.h>

double* input(int &size)
{
    int i;
    double *a;
    printf("\nВведите размер массива:");
    scanf("%d",&size);
    a = new double[size];
    printf("\nЗаполните массив:\n");
    for (i = 0; i <= size-1; i++)
    {
        scanf("%f",&a[i]);
    }
    return a;
}

int main()
{
    int size;
    printf("Программа определяет индекс наиболее близкого по значению элемента массива, к числу N.");
    double *ptr = input(size);
    return(0);
}
Добавляю сразу в цикл printf("%f",a[i]);, чтобы проверить значения, а они равны 0. Программу писал на примерах бешеного препода, поэтому может быть ошибка в логике?

Последний раз редактировалось cheef; 22.10.2011 в 09:56.
cheef вне форума Ответить с цитированием
Старый 22.10.2011, 10:07   #2
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

так у тебя в мейне size не задан)
SteAlzzer вне форума Ответить с цитированием
Старый 22.10.2011, 10:24   #3
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Я его должен по ссылке из функции получить, препод расово против ввода размера массива в main.

Ребятушки, вопрос в силе.

Последний раз редактировалось Stilet; 22.10.2011 в 21:35.
cheef вне форума Ответить с цитированием
Старый 22.10.2011, 21:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот так должно быть:
Код:
double* input(int *size)
{
    int i;
    double *a;
    printf("\nВведите размер массива:");
    scanf("%d",size);
    a = new double[*size];
    printf("\nЗаполните массив:\n");
    for (i = 0; i <= *size-1; i++)
    {
        a[i]=rand()/100;
    }
    return a;
}
int _tmain(int argc, _TCHAR* argv[])
{
	int size;
    printf("Программа определяет индекс наиболее близкого по значению элемента массива, к числу N.");
    double *ptr = input(&size);

	return 0;
}
P.S. Переписал пост, ато там у автора много неточностей.
I'm learning to live...

Последний раз редактировалось Stilet; 22.10.2011 в 21:40.
Stilet вне форума Ответить с цитированием
Старый 23.10.2011, 09:39   #5
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Спасибо, понял в чём была проблема, scanf не правильно работал.
cheef вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ДИНАМИЧЕСКИЕ массивы!!! Nvd Фриланс 6 14.03.2011 13:18
ДИНАМИЧЕСКИЕ массивы!!! Nvd Помощь студентам 2 12.03.2011 14:29
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
динамические массивы в Си aka_faith Помощь студентам 1 24.05.2009 00:56