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

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

Восстановить пароль Регистрация
 
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 22:45     Сформировать новый массив #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[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;
 }
Заранее благодарю)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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);
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;
 }
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:15     Сформировать новый массив #4
У меня вроде все выводит. И положительные, и отрицательные, при любом размере
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:18  [ТС]     Сформировать новый массив #5
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
У меня вроде все выводит. И положительные, и отрицательные, при любом размере
при размере в 20 элементов, все выводит?
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:23     Сформировать новый массив #6
И при размере 100 все выводит
Я же скинул рабочий пример
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:24  [ТС]     Сформировать новый массив #7
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
И при размере 100 все выводит
странно,очень странно)попробую ручной ввод сделать...
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;
 }
У меня вот так все работает
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
25.03.2013, 23:30  [ТС]     Сформировать новый массив #9
ничего не пойму, у меня не работает для всех чисел.....
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
25.03.2013, 23:32     Сформировать новый массив #10
Покажите пример, что у вас выводит
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
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)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2013, 23:45     Сформировать новый массив
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
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)
спасибо, я глуп) все работает)
Yandex
Объявления
25.03.2013, 23:45     Сформировать новый массив
Ответ Создать тему
Опции темы

Текущее время: 21:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru