Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Greaple
1 / 1 / 0
Регистрация: 07.06.2012
Сообщений: 17
#1

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

07.06.2012, 23:54. Просмотров 1323. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Продублировать элементы массива, сохраняя порядок следования (C++):

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

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

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

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

Расположить сначала все отрицательные элементы, затем положительные и нули, сохраняя первоначальный порядок их - C++
Если организовать такой цикл и такую "сортировку", то все отрицательные встают "перед" остальными, сохраняя свой порядок, как и надо, НО......

Поменять порядок следования массива - C++
Подскажите, пожалуйста, как поменять порядок следования данного массива на обратный:gsorry: #include <iostream> using namespace std; ...

6
rinat_w
89 / 85 / 4
Регистрация: 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 / 4
Регистрация: 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Эксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
08.06.2012, 00:44 #5
память то освободи, жадина
0
Andrey.K
342 / 263 / 15
Регистрация: 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 / 4
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2012, 02:35
Привет! Вот еще темы с ответами:

Изменить порядок следования элементов массива - C++
Прошу помочь буду блогодарна ,заранее спасибо!! Изменить порядок следования элементов массива на противоположный

Изменить порядок следования элементов массива - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) Произведение отрицательных элементов массива; 2) Сумму...

Изменить порядок следования элементов массива на противоположный - C++
Измените порядок следования элементов массива на противоположный.

Изменить порядок следования элементов массива на обратный - C++
Привет всем! Нужна помощь по решению задачи на языке С++. Принципиально я знаю как решать, но не могу никак именно чтобы результат был...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
08.06.2012, 02:35
Ответ Создать тему
Опции темы

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