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

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

Войти
Регистрация
Восстановить пароль
 
 
KamalovRadik
7 / 7 / 2
Регистрация: 10.07.2009
Сообщений: 206
#1

Сформировать два массива.... - C++

10.07.2009, 16:16. Просмотров 1097. Ответов 19
Метки нет (Все метки)

Дан массив из 20 элементов. Сформировать два массива размером 10, включив в первый из них элементы с четными номерами, во второй с нечетными.
Не могу сформировать массив, Если не сложно напишите всю программу...

Добавлено через 2 минуты 5 секунд
сам пробывал писать:
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
39
40
41
42
43
44
45
46
#include<stdio.h>
main()
{
int a[20]={3,4,5,7,3,5,3,3,5,3,3,9,0,6,7,4,5,5,8,3}, b[10], c[10], i;
printf("c[10]=");
 
for (i=0; i<=19; i++)
if ((i%2)==0 )
{c[10]=a[i];
 
printf("%d ",c[10]);}
printf("\n");
printf("b[10]=");
for (i=0; i<=19; i++)
if (i%2!=0)
{ b[10]=a[i];
 
printf("%d\ ", b[10]); }
printf("\n");
return 0;
}
 
Но это не правильно,т.к. b[10]  и с[10] он берет не как массивы..., а как числа
 
[SIZE=1]Добавлено через 1 минуту 18 секунд[/SIZE]
#include<stdio.h>
main()
{
int a[20]={3,4,5,7,3,5,3,3,5,3,3,9,0,6,7,4,5,5,8,3}, b[10], c[10], i;
printf("c[10]=");
 
for (i=0; i<=19; i++)
if ((i%2)==0 )
{c[10]=a[i];
 
printf("%d ",c[10]);}
printf("\n");
printf("b[10]=");
for (i=0; i<=19; i++)
if (i%2!=0)
{ b[10]=a[i];
 
printf("%d\ ", b[10]); }
printf("\n");
return 0;
}
Добавлено через 4 минуты 41 секунду
Код нужен на turbo c
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2009, 16:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать два массива.... (C++):

Сформировать два массива, заключив в каждый четные и нечетные номера исходного массива соответственно - C++
Задан массив с количеством элементов N. Сформируйте два массива: в первый включите элементы исходного массива с четными номерами, а во...

Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными номерами, во второ - C++
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными...

Сформировать два массива - C++
Дан массив из 20 элементов. Сформировать два массива размером 10, включив в первый из них элементы заданного массива с четными...

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

Сформировать два одномерных массива из двумерного! - C++
Подскажите как сформировать в (Borland) С++ два одномерных массива из двумерного K, что бы в первый массив вошла сумма елементов строк (...

Сформировать из матрицы два одномерных массива... - C++
Заданы матрица А размером N  N. Сформировать два одномерных массива. В один переслать по строкам верхний треугольник матрицы, включая...

19
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
10.07.2009, 16:18 #2
делать по массивы по 10 - это неправильно, т.к. весь массив может состоять из (не)чётных элементов, и тогда приплыли.

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
#include <functional>
#include <algorithm>
 
/*
    Дан массив из 20 элементов.
    Сформировать два массива размером 10, включив в первый из них элементы с четными номерами,
    во второй с нечетными.
*/
 
template <typename T>
struct odd : public std::unary_function<T, bool>
{
    bool operator()(const T& value) const
    { return value & 1; }
};
 
int main()
{
    const size_t N = 20;
    int a[N] = {...}, b[N], c[N];
 
    std::remove_copy_if(a, a+N, b, odd<int>());
    std::remove_copy_if(a, a+N, c, std::not1(odd<int>()));
 
    return 0;
}
0
KamalovRadik
7 / 7 / 2
Регистрация: 10.07.2009
Сообщений: 206
10.07.2009, 16:23  [ТС] #3
Нужны четные номера, а не элементы ... Поэтому мне кажется 10 можно

Добавлено через 2 минуты 19 секунд
формировать два массива размером 10
0
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
10.07.2009, 16:23 #4
если кажется - тогда делай. но сперва покрестись :lol:
0
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
10.07.2009, 16:25 #5
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
39
40
41
// Tests.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <stdio.h>
#include<iostream>
#include <conio.h>
using namespace std;
void main()
{
    int m[20];
    int *a=new int[20];
    int *b=new int[20];
    int i=0;
    int counter=0;
    int counter1=0;
    for(i=0;i<20;i++)
        m[i]=i;
    for(i=0;i<20;i++)
    {
        if(m[i]%2)
        {
            b[counter]=m[i];
            counter++;
        }
        else
        {
            a[counter1]=m[i];
            counter1++;
        }
        cout<<m[i]<<endl;
    }
    cout<<"Ne4etnie"<<endl;
    for(i=0;i<counter;i++)
        cout<<b[i]<<endl;
    cout<<"4entie"<<endl;
    for(i=0;i<counter1;i++)
    cout<<a[i]<<endl;
    _getch();
 
}
Так ?
P.s можешь вводить с клавиатуры как угодно 19 нечетных 1 четный.
0
KamalovRadik
7 / 7 / 2
Регистрация: 10.07.2009
Сообщений: 206
10.07.2009, 16:28  [ТС] #6
Sekt, а этот код для с пойдет?
0
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
10.07.2009, 16:29 #7
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
/* Дан массив из 20 элементов. Сформировать два массива размером 10, 
   включив в первый из них элементы с четными номерами, во второй с нечетными. */
 
#include <stdio.h>
 
int main(int argc, char * argv [])
{
    const short N = 20, M = 10;
    int mas[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
        11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
 
    int even[M], odd[M]; /* Even - четный. Odd - нечетный */
 
    for(int i = 0, i_even = 0, i_odd = 0; i < N; i++)
    {
        if(mas[i]%2 == 0)
        {
            even[i_even] = mas[i];
            printf("Even[%d]: %d\n", i_even + 1, even[i_even]);
            i_even++;
        }
        else
        {
            odd[i_odd] = mas[i];
            printf("Odd[%d]: %d\n", i_odd + 1, odd[i_odd]);
            i_odd++;
        }
    }
    return 0;
}
0
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
10.07.2009, 16:32 #8
Цитата Сообщение от KamalovRadik Посмотреть сообщение
Sekt, а этот код для с пойдет?
Да конешно
0
ISergey
Maniac
Эксперт С++
1395 / 906 / 56
Регистрация: 02.01.2009
Сообщений: 2,706
Записей в блоге: 1
10.07.2009, 16:42 #9
Цитата Сообщение от Sekt Посмотреть сообщение
Да конешно
нет конешно..
он сразу на этих строках ошибку выдаст
C++
1
2
#include "stdafx.h"
#include<iostream>
Добавлено через 52 секунды
Search.., товой тоже на "С" работать не будет.
0
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
10.07.2009, 16:43 #10

Не по теме:

ISergey: Привед !! =)



Добавлено через 47 секунд
ISergey: А я же под Visual Studio писал =)
0
KamalovRadik
7 / 7 / 2
Регистрация: 10.07.2009
Сообщений: 206
10.07.2009, 16:45  [ТС] #11
А что значит i_even = 0, i_odd = 0;

Добавлено через 1 минуту 19 секунд
Может кто нибудь под С написать?
0
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
10.07.2009, 16:46 #12
KamalovRadik: Инициализировать эти переменные нулями...

Добавлено через 44 секунды
А зачем тебе С ? Microsoft Visual Studio рулит. Если Linux, то gcc рулит =)
0
KamalovRadik
7 / 7 / 2
Регистрация: 10.07.2009
Сообщений: 206
10.07.2009, 16:52  [ТС] #13
У меня экзамен завтра по С,,
0
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
10.07.2009, 16:53 #14
Аа, ясно... Я под С к сожалению не пишу. Так что помочь не смогу
1
ISergey
Maniac
Эксперт С++
1395 / 906 / 56
Регистрация: 02.01.2009
Сообщений: 2,706
Записей в блоге: 1
10.07.2009, 16:56 #15
Цитата Сообщение от KamalovRadik Посмотреть сообщение
Может кто нибудь под С написать?
Модификация кода Search..

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
#include <stdio.h>
 
#define N 20
#define M 10
 
int main()
{
    int mas[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
        11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
 
    int even[M], odd[M]; /* Even - четный. Odd - нечетный */
    int i, i_even, i_odd;
 
    for(i = 0, i_even = 0, i_odd = 0; i < N; i++)
    {
        if(mas[i]%2 == 0)
        {
            even[i_even] = mas[i];
            printf("Even[%d]: %d\n", i_even + 1, even[i_even]);
            i_even++;
        }
        else
        {
            odd[i_odd] = mas[i];
            printf("Odd[%d]: %d\n", i_odd + 1, odd[i_odd]);
            i_odd++;
        }
    }
    return 0;
}
0
10.07.2009, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2009, 16:56
Привет! Вот еще темы с ответами:

Сформировать и вывести на экран два одномерных массива - C++
Задана целая квадратная матрица. Сформировать и вывести на экран два одномерных массива: в первый включить четные элементы матрицы, во...

Сформировать и вывести на экран два одномерных массива - C++
Задана целая квадратная матрица. Сформировать и вывести на экран два одномерных массива: в первый включить четные элементы матрицы, во...

Из данных двоичного файла сформировать два массива - C++
Создать двоичный файл, куда записать n вещественных чисел. Из компонентов исходного файла сформировать массивы положительных и...

Отсортировать два массива и сформировать третий, так же упорядоченный - C++
Задания к лабораторной работе. Выполните приведенные ниже задания. 1. Даны два целочисленных массива 2. Реализуйте алгоритмы...


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

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

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