Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

задача с массивом помогите реализовать(С)

34K
23 июня 2008 года
Snowman
15 / / 23.06.2008
суть такая Dano natural'noe chislo n. Sformirovat' celochislennii massiv IM(2n) elementami kotorogo yavlyayutsya chisla 1, 2n, 2, 2n-1, 3, 2n-2 ... n, n+1");

помогите пожалуйста, сессия к концу подходит а я вот сделать не могу:(
87
23 июня 2008 года
Kogrom
2.7K / / 02.02.2008
Эээ, товарищ, ты же где-то только что уже сам пытался решать эту задачу? И там ты использовал c++, а не c. И я хотел тебя послать читать книгу.

Но ладно. Первый вариант функции на си++

Код:
int* massiv (int n)
{
    int *a = new int[2*n];
 
    for(int i = 0, j = 1; i < 2*n; i +=2, j++)
    {
        a = j;
        a[i + 1] = 2*n - j + 1;
    }
    return a;
}


Немного продвинутый вариант (лучше не нести преподавателю - заподозрит помощь со стороны):

Код:
#include<new>
int* massiv (size_t n)
{
    int *a;

    try{
        a = new int[2*n];
    }
    catch(bad_alloc xa){
        cout << "error" << endl;
        return a = 0;
    }

    for(int i = 0, j = 1; i < 2*n; i +=2, j++)
    {
        a = j;
        a[i + 1] = 2*n - j + 1;
    }
    return a;
}
34K
23 июня 2008 года
Snowman
15 / / 23.06.2008
вот что у меня получилось:
Код:
//---------------------------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <conio.h>  
#include <string.h>
//---------------------------------------------------------------------------
int enter_dim();
int* massiv (int n);
//---------------------------------------------------------------------------
void main(void)
{
 int  n,a;

 clrscr();

 n = enter_dim();

 printf("\n pri n=%d massiv budet vigliadet':\n\n %d ",n,a);

 getch();
}
//-----------------------------------------------------------------------------
int enter_dim()
{
    int n;

    printf("\n Vvedite chislo n: ");

    scanf ("%d", &n);

    return n;
}
//------------------------------------------------------------------------------
int* massiv (int n)
{
    int *a = new int[2*n];

    for(int i = 0, j = 1; i < 2*n; i +=2, j++)
    {
        a = j;
        a[i + 1] = 2*n - j + 1;
    }
    return a;
}

[COLOR="Red"]Оформляй код по Правилам.[/COLOR]
87
23 июня 2008 года
Kogrom
2.7K / / 02.02.2008
Ну раз уж я начал давать ответы на си++, то

Код:
#include<iostream>
using namespace std;

int* massiv (size_t n)
{
    int *a = new int[2*n];

    for(int i = 0, j = 1; i < 2*n; i +=2, j++)
    {
        a = j;
        a[i + 1] = 2*n - j + 1;
    }
    return a;
}


int main()
{
    int n = 55; // обойдусь без диалога с пользователем
    int *b = massiv(n);
    if (b == 0) return 1;
    for(int i = 0; i < 2*n; i++)
    {
        cout << b << endl;
    }
    delete [] b;
}

на си будет похоже, но названия некоторых функций поменяются
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог