|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.03.2010, 19:52 | #1 |
Нубик в С++
Пользователь
Регистрация: 15.12.2009
Сообщений: 42
|
[C++] Не могу разобраться ...
Код:
|
23.03.2010, 21:05 | #2 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
// типа объявил функцию
int FillArray(int iFrom, int iTo, int* Range) // зачем тут передаеш параметр // по ссылка int* Range { int iSize = 0, iIndex; for ( iIndex = iFrom; iIndex <= iTo; iIndex++ ) {Range[iSize++] = iIndex;} // тело цикла return iSize; } int *Function(int *Range, int iNumbers[], int Size) { int iIndex; for(iIndex = 0; iIndex < Size; iIndex++) { for(int j = 0; j < sizeof(Range)/sizeof(int); j++) { if (Range[j]%iNumbers[iIndex] == 0)// здесь мне не понять чавы это вы хатели. Перед использованием переменной она должна быть определена %iNumbers[iIndex] Range[j] = 0; } } return Range; } int main() { int iIndex, iFrom, iTo; int iSize; int* Range; int Summa; int c = 0; printf("Please enter Range: "); scanf("%d - %d", &iFrom, &iTo); Range = (int*)malloc((iTo-iFrom+1)*sizeof(int)); iSize = FillArray( iFrom, iTo, Range ); printf("The Range: "); for(iIndex = 0; iIndex < iSize; iIndex++) { printf("%d ", Range[iIndex]); } printf( "\n" ); printf("Count of numbers: "); scanf("%d", &c); int* iNumbers = new int[c]; printf("Input values:\n"); for(int i = 0; i < c; i++) { scanf("%d", &iNumbers[i]); } for(iIndex; iIndex < iSize; iIndex++) { Range = Function(Range, iNumbers, c); } for(iIndex = 0; iIndex < iSize; iIndex++) { printf("%d ", Range[iIndex]); } free(Range); _getch(); return 0; } [/code] Должен занулять элементы диапазона которые делятся на цело на введёные числа, но дальше первого элемента почему-то не идёт[/QUOTE]
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
23.03.2010, 22:29 | #3 | |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Цитата:
2. Этот sizeof(Range) даёт не то, чего Вам хочется. Совсем не то... Это - размер указателя. В подавляющем большинстве случаев - четырёхбайтового адреса. И равен он, соответственно, на большинстве машин четырём, независимо от фактической длины массива. Нельзя в C/C++ определить длину массива "on the fly". Увы... 3. Это не Питон, это - C Не принято тут массивы через return возвращать. В принципе, можно, конечно, но - не принято. У вас адрес Range в параметрах есть - вот через него и работайте с этим массивом. |
|
24.03.2010, 09:47 | #4 |
Нубик в С++
Пользователь
Регистрация: 15.12.2009
Сообщений: 42
|
Хм.. и что делать тогда с размеров массив iNumbers, и как массив в функции возвратить? о.О
|
24.03.2010, 10:08 | #5 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Размер массива iNumber[] ф-ии известен. Вы его туда передаёте; формальный параметр называется Size, а фактический - c. Аналогично, можно передать в ф-ю Function() в качестве параметра переменную iSize - фактический размер массива Range[].
Вы в Function() уже передали адрес массива Range[]. Это сейчас мода такая? Браться писать на C, не прочитав K&R?.. |
24.03.2010, 14:10 | #6 |
Нубик в С++
Пользователь
Регистрация: 15.12.2009
Сообщений: 42
|
когда передаю размер массива Range[], при попытке обратиться в функцию ругается..
ну не знаю какая мода, ну вот нам так сразу дали программируйте как хотите) |
24.03.2010, 15:37 | #7 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Ну, немеркнущую классику в списке литературы вам не могли не дать...
|
24.03.2010, 16:01 | #8 |
Нубик в С++
Пользователь
Регистрация: 15.12.2009
Сообщений: 42
|
о.О спасибо, прочту.
Но у меня до сих пор остаётся нерешённая проблема с кодом, что поделать? |
24.03.2010, 16:23 | #9 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Код:
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу разобраться | Lokin | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 22.03.2010 22:45 |
НЕ МОГУ РАЗОБРАТЬСЯ... | GSV84 | HTML и CSS | 0 | 03.02.2010 01:38 |
не могу разобраться | Инспектор ГУЛ | Свободное общение | 7 | 20.09.2009 09:29 |