Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Динамические массивы на С++

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Рустам Назаров
Гость





СообщениеДобавлено: Ср Апр 07 2004 07:52    Заголовок сообщения: Динамические массивы на С++ Ответить с цитатой

Хочу использовать динамический массив, но к сожалению НЕ получается... Embarassed ПОМОГИТЕ ПОЖАЛУЙСТА...

Например, если задача стоит следующим образом:
Даны целое число N и действительные числа a1, a2, ..., aN. Удвоить все нечетные числа данной последовательности.

На Visual Basic это могу сделать следующим образом:

' ============================================
Dim n As Integer, i As Integer
Dim a() As Double

n = Text1.Text
ReDim a(1 To n) As Double

For i = 1 To n
a(i) = InputBox("Введите элемент массива")
List1.AddItem a(i) ' исходный массив
Next i

For i = 1 To n
if a(i) Mod 2 <> 0 Then a(i) = 2 * a(i)
Next i

For i = 1 To n
List2.AddItem a(i) ' измененный массив
Next i
' ============================================

Теперь, просьба: НЕ МОГЛИ БЫ ВЫ НАПИСАТЬ МНЕ ТО ЖЕ САМОЕ НА ЯЗЫКЕ С++?, т.е. перевести на С++.

Заранее благодарю,
Рустам
Вернуться к началу
grayrat



Зарегистрирован: 30.06.2003
Сообщения: 189

СообщениеДобавлено: Чт Апр 08 2004 10:45    Заголовок сообщения: Ответить с цитатой

Код:

#include <stdio.h>
#include <stdlib.h>

int double_even( int *in, int N, int *out )
{
    int i, j;
    for( i=0, j=0; i<N; i++ )
      if( in[ i ] % 2 ) out[ j++ ] = in[ i ]*2;
    return j;  // возвращаем число элементов
}


void main()
{
   int i, N;

   printf( "N=" );
   scanf( "%d", &N );
   
   int *in   = (int *)malloc(  N*sizeof(int) );

   for( i=0; i<N; i++ )
     {
        printf( "A[%d]=", i );
        scanf( "%d", &in[ i ] );
     }

   N = double_even( in, N, in );

   for( i=0; i<N; i++ )
     printf( "B[%d]=%d\n", i, out[i] );

   free( in );
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
JibSkeart



Зарегистрирован: 13.04.2004
Сообщения: 12
Откуда: Из далекой галактики

СообщениеДобавлено: Вт Апр 13 2004 16:06    Заголовок сообщения: Ответить с цитатой

Еще можно юзануть
std::vector ...
_________________
-=JS=-
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
droopy
Гость





СообщениеДобавлено: Пт Апр 16 2004 17:28    Заголовок сообщения: Ответить с цитатой

тебе здесь динамические массивы не надо использовать так как
размер массива не меняется во время исполнения. Статических
массивов вполне достаточно.
Вернуться к началу
GREA



Зарегистрирован: 14.05.2003
Сообщения: 758
Откуда: Новосибирск

СообщениеДобавлено: Пт Апр 16 2004 19:44    Заголовок сообщения: Ответить с цитатой

2droopy, Экий ты непонятливый. Как ему препод сказал, так и должно быть.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
juike



Зарегистрирован: 19.04.2004
Сообщения: 1
Откуда: russia.omsk

СообщениеДобавлено: Пн Апр 19 2004 14:09    Заголовок сообщения: Ответить с цитатой

2grayrat: си-код, а не сипэпэ. может нужно именно сpp??
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...