Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Greaple
1 / 1 / 0
Регистрация: 07.06.2012
Сообщений: 17
1

Продублировать элементы массива, сохраняя порядок следования

07.06.2012, 23:54. Просмотров 1713. Ответов 6
Метки нет (Все метки)

1.Дан массив из n целых чисел. Продублировать все элементы, сохраняя порядок следования. Например, для массива X=(3, 8, 4, ...) получить X=(3, 3, 8, 8, 4, 4, …).

2.Дана квадратная целочисленная матрица. Определить, является ли она магическим квадратом. В магическом квадрате сумма чисел по всем горизонталям, вертикалям и двум диагоналям должна быть одна и та же.

в задачах нужно использовать функции
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 23:54
Ответы с готовыми решениями:

В массиве, все элементы которого различны, найти и удалить n наименьших элементов, «поджимая» массив к началу и сохраняя порядок следования
В массиве, все элементы которого различны, найти и удалить n наименьших...

одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец массива in c++
одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их...

Переставить в массиве все отрицательные элементы в начало массива, сохраняя относительный порядок
Проштудировал весь форум.Решений много взял по примеру написал код, ошибок нет...

Сдвинуть все отрицательные элементы с в начало массива,сохраняя их порядок между собой, а все положительные элементы
Дан целочисленный список с количеством элементов 2n, не содержащий нулей....

Записать в данный массив сначала все отрицательные числа и нули, затем все положительные, сохраняя порядок их следования
Здравствуйте! Прошу вас о помощи! Помогите пожалуйста написать код программы! ...

6
rinat_w
89 / 85 / 17
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
08.06.2012, 00:07 2
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
int main(){
    int n;
    cout<<"n="; cin>>n;
    int *a=new int[n];
    int *b=new int[2*n];
    cout<<"Massive :\n";
    for (int i=0; i<n; i++){
        cin>>a[i];
        b[2*i]=a[i];
        b[2*i+1]=a[i];
        cout<<b[2*i]<<" "<<b[2*i+1]<<" ";
    }
    cout<<endl;
    system("pause");
    return 0;
}
1
Greaple
1 / 1 / 0
Регистрация: 07.06.2012
Сообщений: 17
08.06.2012, 00:16  [ТС] 3
спасибо! а как мне с помощью функций написать?
0
rinat_w
89 / 85 / 17
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
08.06.2012, 00:26 4
2)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
using namespace std;
int main(){
    int sum,n;
    cout<<"n="; cin>>n;
    int **a=new int*[n];
    bool flag=false;
    cout<<"Enter matrix : \n";
    for (int i=0; i<n; i++){
        a[i]=new int[n];
        sum=0;
        for (int j=0; j<n; j++){
            cin>>a[i][j];
            sum+=a[i][j];
        }
    }
    for (int i=0; i<n; i++){
        int sum1=0,sum2=0,sum3=0,sum4=0;
        for (int j=0; j<n; j++){
            sum1+=a[i][j];
            sum2+=a[j][i];
            sum3+=a[j][n-1-j];
            sum4+=a[n-1-j][j];
        }
        if (sum1==sum && sum2==sum && sum3==sum && sum4==sum) flag=true;
        else flag=false;
    }
    if (flag) cout<<"Magic!!!\n";
    else cout<<"Not magic\n";
    system("pause");
    return 0;
}
а как с функциями не знаю, алгоритм запомни это главное
1
MrGluck
Модератор
Эксперт CЭксперт С++
8086 / 4939 / 1431
Регистрация: 29.11.2010
Сообщений: 13,395
08.06.2012, 00:44 5
память то освободи, жадина
0
Andrey.K
344 / 265 / 128
Регистрация: 14.11.2010
Сообщений: 482
08.06.2012, 01:47 6
1 задача через функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;
void Input(int* a,int n)
{
    for (int i=0; i<n; i++)
        cin>>a[i];
}
void Output(int* a,int n)
{
    for (int i=0; i<n; i++)
        cout<<a[i]<<" ";
}
void Fun(int* a,int* b,int n)
{
    for(int i=0;i<n;i++)
    {
        b[2*i]=a[i];
        b[2*i+1]=a[i];
    }
}
int main()
{
    int n;
    cout<<"n="; cin>>n;
    int *a=new int[n];
    int *b=new int[2*n];
    Input(a,n);
    cout<<"Massive :\n";
    Output(a,n);
    Fun(a,b,n);
    cout<<"\nNew mas: "<<endl;
    Output(b,n*2);
    cout<<endl;
    delete[] a;
    delete[] b;
    system("pause");
    return 0;
}
1
rinat_w
89 / 85 / 17
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
08.06.2012, 02:35 7

Не по теме:

MrGluck, блин ну всегда забываю освобождать, бесит



Добавлено через 13 минут
во с функциями:
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
void func(){
    int n;
    cout<<"n="; cin>>n;
    int *a=new int[n];
    int *b=new int[2*n];
    cout<<"Massive :\n";
    for (int i=0; i<2*n; i++){
        if (i%2==0) cin>>a[i/2];
        b[i]=a[i/2];
    }
    for (int i=0; i<2*n; i++) cout<<b[i]<<" ";
    cout<<endl;
    delete []a;
    delete []b;
    system("pause");
}
int main(){
    func();
    return 0;
}
2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<iostream>
using namespace std;
void func(){
    int sum,n;
    cout<<"n="; cin>>n;
    int **a=new int*[n];
    bool flag=false;
    cout<<"Enter matrix : \n";
    for (int i=0; i<n; i++){
        a[i]=new int[n];
        sum=0;
        for (int j=0; j<n; j++){
            cin>>a[i][j];
            sum+=a[i][j];
        }
    }
    for (int i=0; i<n; i++){
        int sum1=0,sum2=0,sum3=0,sum4=0;
        for (int j=0; j<n; j++){
            sum1+=a[i][j];
            sum2+=a[j][i];
            sum3+=a[j][n-1-j];
            sum4+=a[n-1-j][j];
        }
        if (sum1==sum && sum2==sum && sum3==sum && sum4==sum) flag=true;
        else flag=false;
    }
    if (flag) cout<<"Magic!!!\n";
    else cout<<"Not magic\n";
    delete []a;
    system("pause");
}
int main(){
    func();
    return 0;
}
1
08.06.2012, 02:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2012, 02:35

Расположить сначала все отрицательные элементы, затем положительные и нули, сохраняя первоначальный порядок их
Если организовать такой цикл и такую &quot;сортировку&quot;, то все отрицательные встают...

Поменять порядок следования массива
Подскажите, пожалуйста, как поменять порядок следования данного массива на...

Изменить порядок следования элементов массива
Прошу помочь буду блогодарна ,заранее спасибо!! Изменить порядок следования...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru