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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2010, 18:24   #1
AquaticSoul
Нубик в С++
Пользователь
 
Аватар для AquaticSoul
 
Регистрация: 15.12.2009
Сообщений: 42
По умолчанию Диапазон значений

Код:
#include <stdio.h>
#include <conio.h>

int main(void)
{
	int Range[2], RangeSize;
	int iIndex1 = 0; 
	int iIndex2 = 0;
	int iRangeSize = 0;
	printf("From ");
	scanf("%d", &Range[iIndex1]);
	iIndex1++;
	printf("To ");
	scanf("%d", &Range[iIndex1]);
	RangeSize = Range[1] - Range[0];

	const int iRangeSize = RangeSize;

	int iRange[iRangeSize];

	for(iIndex2; iIndex2 < RangeSize; iIndex2++)
	{
		if (iRange[iIndex2] == Range[1])
			break;
		iRange[iIndex2] = Range[0]++;
	}


	for(iIndex2 = 0; iIndex2 < RangeSize; iIndex2++)
	{
		printf("%d ", Range[iIndex2]);
	}
	_getch();
	return 0;
}
Нужно вывести диапазон значений например пишешь от 25 до 28
выводит 25 26 27 28 29; и реализовать в виде функции, я вот но у меня ошибка.. и как потом запихнуть это в функцию?
AquaticSoul вне форума Ответить с цитированием
Старый 21.03.2010, 18:45   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Код:
void diap(int fst, int sec)
{
     for (int i=fst; i<sec;i++)
     printf("%d ",i);
}

int main()
{
     int a,b;
     printf ("vvedite diapazon");
     scanf ("%d %d", &a,&b);
     diap(a,b);
     return 0;
}
И нужно вводить кучу индексов ненужных, каких то длинных имен и массивов?
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 21.03.2010, 19:02   #3
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от RoS Посмотреть сообщение
Код:
     for (int i=fst; i<sec;i++)
Код:
for (int i=fst; i<=sec;i++)
Если это только не "range" в Питоновском понимании этого термина. Тогда - действительно, "строго меньше"
Vago вне форума Ответить с цитированием
Старый 21.03.2010, 19:04   #4
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Ну в принципе да, хотя у автора вообще
Цитата:
Нужно вывести диапазон значений например пишешь от 25 до 28
выводит 25 26 27 28 29; и реализовать в виде функции, я вот но у меня ошибка.. и как потом запихнуть это в функцию?
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 21.03.2010, 19:12   #5
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от RoS Посмотреть сообщение
хотя у автора вообще
Цитата:
...пишешь от 25 до 28 выводит 25 26 27 28 29;
Думаю, автор в спешке очепатался 29 - лишнее.
Vago вне форума Ответить с цитированием
Старый 22.03.2010, 05:35   #6
AquaticSoul
Нубик в С++
Пользователь
 
Аватар для AquaticSoul
 
Регистрация: 15.12.2009
Сообщений: 42
По умолчанию

Да я действительно опечатался

Мне нужно не просто его вывести а записать в массив, мне этот массив ещё пригодится.
AquaticSoul вне форума Ответить с цитированием
Старый 22.03.2010, 09:56   #7
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>


int FillArray( int kFrom, int kTo, int* a ) {

   int   n = 0, k;

   for ( k = kFrom; k <= kTo; k++ )
      a[n++] = k;

   return n;

}


int main() {

   int   i,
          kFrom = 25,
          kTo = 28,
          n;
   int*  a;


/*
 * Здесь можете сделать ввод kFrom и kTo вместо присваивания 
 * и хотя бы простейшую проверку, a la kFrom <= kTo
 */
   a = (int*)malloc( (kTo-kFrom+1)*sizeof( int ) );

   n = FillArray( kFrom, kTo, a );

   printf( "The Range:\n" );
   for ( i = 0; i < n; i++ )
      printf( "%d ", a[i] );
   printf( "\n" );

   free( a );

   return 0;

}
Vago вне форума Ответить с цитированием
Старый 22.03.2010, 13:19   #8
AquaticSoul
Нубик в С++
Пользователь
 
Аватар для AquaticSoul
 
Регистрация: 15.12.2009
Сообщений: 42
По умолчанию

Спасибо, а для чего нужна строка free( a ); ?
AquaticSoul вне форума Ответить с цитированием
Старый 22.03.2010, 13:50   #9
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

В C / C++ освобождать взятую динамически память после того, как она стала ненужной, программист должен сам. Раз написали malloc() - надо написать и free(). Написали new() - надо написать delete().
Vago вне форума Ответить с цитированием
Старый 22.03.2010, 13:52   #10
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2AquaticSoul
а ты сделай как. возьми любую книжечку по языку Си, открываешь в конце оглавление, ищешь буковку F, далее ищешь слово free, после него увидишь цифорку. ну так вот. открываешь страницу с номером этой цифорки и читаешь, читаешь, читаешь. если книжек нет, из сети качать совесть не позволяет, то можно сделать вот так:
http://yandex.ru/yandsearch?text=%D1...8F+free&lr=213

и что мы видим на первой странице первой ссылкой, первым словом?

на этом урок закончен. ты уж потренируйся сам так делать, без посторонней помощи. договорились?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение и загрузка в файл текстовых значений и значений типа Boolean krikaved Общие вопросы Delphi 1 16.03.2010 07:53
отфильтровать диапазон значений RaMoNeZz БД в Delphi 8 18.02.2009 20:25
Диапазон limon Помощь студентам 5 06.09.2008 21:44
Как написать в коде чтобы диапазон А копировался как значение в диапазон В. Dorvir Microsoft Office Excel 12 23.05.2008 22:11