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

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

Войти
Регистрация
Восстановить пароль
 
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
#1

Сформировать новый массив - C++

25.03.2013, 22:45. Просмотров 477. Ответов 12
Метки нет (Все метки)

Здраствуйте)Помогите написать вот такую вот програмку:
Сформируйте массив, в котором будут только те элементы исходного массива,которые заканчиваются на к( к вводит юзер) есть такие вот наброски, только выводит нули, условие вроде бы правильное:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <time.h>
#include <Windows.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
void Random (int* p, int n);
void vuvod  (int* p, int n);
 
int arr[20],b[20];
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand((unsigned)time(NULL));
    int n;
    cin>>n;
    if (n!=0)
    {
        Random(arr, n);
        vuvod(arr, n);}
    else
    {
        cout<<"Вы решили покинуть программу!";
        cout<<endl;
        return;
    }
    int i,j=0,p;
    cout<<"Введите к";
    cin>>p;
 
   for(int i = 0;i < n;i++)
    {
    if(arr[i]%10==p)
     {
     b[j] = arr[i];
     j++;
     }
    cout << b[j] << " ";
         }
 
 
    }
 
 
 void Random (int* p, int n) {
    while (n-->0) {
        *p= -50 +  rand () % 100;
        p++;
    }
}
 void vuvod  (int* p, int n) {
    while (n-->0) {
        cout << *p<< " ";
        p++;
        }
    cout << endl;
 }
Заранее благодарю)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 22:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать новый массив (C++):

Дан массив из 25 элементов. Сформировать из него новый массив, элементы которого кратны 5 - C++
Помогите решить задачу. Дан массив из 25 элементов. Сформировать из него новый массив, элементы которого кратны 5.

Сформировать новый массив - C++
Задан массив целых чисел a. Сформировать массив b, состоящий из элементов массива a, расположенных в порядке убывания. #include...

Сформировать новый массив - C++
Дан массив a1, ... , a20. Сформировать новый массив b1, ... , b20 , у которого вначале следуют все положительные элементы массива А,...

Сформировать новый массив из заданного - C++
помогите, пожалуйста, исправить код так, чтоб не было cout , то есть с printf и scanf. Условие: Если в данном массиве нет четных...

Сформировать новый массив из больших 8 - C++
Дан массив C(15). Сформировать новый массив из больших 8 чисел исходного

Сформировать новый массив из элементов массива - C++
сформировать новый массив из элементов массива М(25), встречающихся в этом массиве только один раз. на Си. заранее спасибо!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:01 #2
C++
1
2
3
4
5
6
7
8
9
for(int i = 0;i < n;i++)
    {
    if(arr[i]%10==p || arr[i]%10==-p)
     {
     b[j] = arr[i];
     j++;
     }
   }
   vuvod(b,j);
1
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:07  [ТС] #3
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
for(int i = 0;i < n;i++)
    {
    if(arr[i]%10==p || arr[i]%10==-p)
     {
     b[j] = arr[i];
     j++;
     }
   }
   vuvod(b,j);
спасибо,ошибка была очевидной)

Добавлено через 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <time.h>
#include <Windows.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
void Random (int* p, int n);
void vuvod  (int* p, int n);
 
int arr[100],b[100];
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand((unsigned)time(NULL));
    int n;
    cin>>n;
    if (n!=0)
    {
        Random(arr, n);
        vuvod(arr, n);}
    else
    {
        cout<<"Вы решили покинуть программу!";
        cout<<endl;
        return;
    }
    int j=0,p;
    cout<<"Введите к";
    cin>>p;
 
   for(int i = 0;i < n-1;i++)
    {
    if(arr[i]%10==p)
     {
     b[j] = arr[i];
     j++;
     }
   }
        
   vuvod(b,j);
 
    }
 
 
 void Random (int* p, int n) {
    while (n-->0) {
        *p= -50 +  rand () % 100;
        p++;
    }
}
 void vuvod  (int* p, int n) {
    while (n-->0) {
        cout << *p<< " ";
        p++;
        }
    cout << endl;
 }
0
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:15 #4
У меня вроде все выводит. И положительные, и отрицательные, при любом размере
0
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:18  [ТС] #5
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
У меня вроде все выводит. И положительные, и отрицательные, при любом размере
при размере в 20 элементов, все выводит?
0
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:23 #6
И при размере 100 все выводит
Я же скинул рабочий пример
0
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:24  [ТС] #7
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
И при размере 100 все выводит
странно,очень странно)попробую ручной ввод сделать...
0
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:26 #8
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <time.h>
#include <Windows.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
void Random (int* p, int n);
void vuvod  (int* p, int n);
 
int arr[100],b[100];
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand((unsigned)time(NULL));
    int n;
    cin>>n;
    if (n!=0)
    {
        Random(arr, n);
        vuvod(arr, n);}
    else
    {
        cout<<"Вы решили покинуть программу!";
        cout<<endl;
        return;
    }
    int j=0,p;
    cout<<"Введите к";
    cin>>p;
 
   for(int i = 0;i < n-1;i++)
    {
    if(arr[i]%10==p)
     {
     b[j] = arr[i];
     j++;
     }
   }
        
   vuvod(b,j);
 
    }
 
 
 void Random (int* p, int n) {
    while (n-->0) {
        *p= -50 +  rand () % 100;
        p++;
    }
}
 void vuvod  (int* p, int n) {
    while (n-->0) {
        cout << *p<< " ";
        p++;
        }
    cout << endl;
 }
У меня вот так все работает
1
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:30  [ТС] #9
ничего не пойму, у меня не работает для всех чисел.....
0
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:32 #10
Покажите пример, что у вас выводит
0
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:36  [ТС] #11
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
Покажите пример, что у вас выводит
-
-42 43 9 26 -26 43 -32 45 -28 40 40 12 -34 3 -41
вывод: 12, а должно быть : - 42 -32 12
0
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:39 #12
Так нужно вот так написать
C++
1
if(arr[i]%10==p || arr[i]%10==-p)
1
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:45  [ТС] #13
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
Так нужно вот так написать
C++
1
if(arr[i]%10==p || arr[i]%10==-p)
спасибо, я глуп) все работает)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2013, 23:45
Привет! Вот еще темы с ответами:

Сформировать новый массив по заданному правилу - C++
Сформировать массив J(10) из массива I(10) по следующему принципу: J(N)=I(N)+N.

Сформировать новый массив по заданной формуле - C++
Дан массив A из 10 элементов и массив B из 10 элементов. Сформировать массив C по следующей схеме: C=sqrt(A^2+B^2) Подскажите,что не...

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

Сформировать новый массив из исходного по заданному правилу - C++
Задача из Златопольского: Из элементов массива p сформировать массив q того же размера по правилу: элементы с номером i от 3-го по 10-й...


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

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

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