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

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

Войти
Регистрация
Восстановить пароль
 
Roman K
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 13
#1

Программа выдаёт не ту информацию, которая необходима - C++

21.10.2013, 01:34. Просмотров 330. Ответов 8
Метки нет (Все метки)

Само задание: Записать подряд в массив В элементы массива А[75], стоящие на четных местах, а элементы , стоящие на нечетных местах записать в массив С.


Написанная мной программа:
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;

int main ()

{
int A[75];
int B[36];
int C[36];
for (int i=0; i<75; i++)
{
A[i]=i+1;
}

for (int i = 0; i<= 37; i++)
{
B[i] = A[ i*2 ];
C[i] = A[ i*2 + 1];
}


for (int i = 0; i<= 37; i++)
{
cout<<B[i]<<endl;
cout<<C[i]<<endl;
}

system("pause");
return 0;
}



Выход программы:
1
73
3
75
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
0


Следовательно программа не разделяет между массивами числа. Помогите исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 01:34     Программа выдаёт не ту информацию, которая необходима
Посмотрите здесь:

C++ Надо написать функцию которая выдаёт маршрут файла
C++ Программа, которая согласно запросу пользователя выводит информацию об абонентах
Программа, которая бы записывала в текстовый файл информацию о всех пакетах, проходящих через сетевую карту C++
Программа в Visual C++ выдаёт ошибки C++
Программа выдаёт ошибки C++
Програма, которая запрашивает размер ноги и выдаёт ориентировочный рост(switch) C++
Написать программу, которая случайным образом выдаёт английские/русские слова C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.10.2013, 01:52     Программа выдаёт не ту информацию, которая необходима #2
у вас выход за пределы массивов при формировании B и С и при их печати.
при размере массивом в 36 нужно:
for (int i = 0; i <= 35; i++)
а не
for (int i = 0; i <= 37; i++)
Roman K
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 13
21.10.2013, 01:57  [ТС]     Программа выдаёт не ту информацию, которая необходима #3
Цитата Сообщение от DU Посмотреть сообщение
у вас выход за пределы массивов при формировании B и С и при их печати.
при размере массивом в 36 нужно:
for (int i = 0; i <= 35; i++)
а не
for (int i = 0; i <= 37; i++)


Исправил, но выход не тот, который нужен:
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
61
62
63
64
65
66
67
68
69
70
71
72

Что ещё нужно исправить ?
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.10.2013, 02:03     Программа выдаёт не ту информацию, которая необходима #4
36 * 2 = 72, а не 75.
чтобы все напечаталось, размер массивов должен быть 75 / 2 = 34. + обработать ситуацию с нечетными числами, т.к. их количество на еденицу больше. итого один массив должен быть размером 37, другой - 38.
Roman K
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 13
21.10.2013, 02:06  [ТС]     Программа выдаёт не ту информацию, которая необходима #5
Цитата Сообщение от DU Посмотреть сообщение
36 * 2 = 72, а не 75.
чтобы все напечаталось, размер массивов должен быть 75 / 2 = 34. + обработать ситуацию с нечетными числами, т.к. их количество на еденицу больше. итого один массив должен быть размером 37, другой - 38.
Можешь, пожалуйста подправить саму программу и выдать готовую ? Я не совсем понял, что нужно сделать.
B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
21.10.2013, 02:25     Программа выдаёт не ту информацию, которая необходима #6
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
/*Записать подряд в массив В элементы массива А[75], стоящие на четных местах, 
а элементы, стоящие на нечетных местах записать в массив С.*/
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
int main ()
{
    int A[76]; int B[38]; int C[38];
 
    for (int i=0; i<76; i++)    A[i]=i;
 
    for (int i = 0; i< 38; i++)
    {
        B[i] = A[ i*2 ]; C[i] = A[ i*2 + 1];
    }
 
cout<< "\nEven numbers:\n ";
for (int i = 0; i<= 37; i++)
    cout << B[i]<< " ";
 
cout<< "\nOdd numbers:\n ";
for (int i = 0; i<= 37; i++)
    cout<< C[i]<< " ";
 
system("pause");
return 0;
}
Br8k
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
21.10.2013, 02:27     Программа выдаёт не ту информацию, которая необходима #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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
void main(void)
{
    int a[75],b[38],c[37],i,j=1,x=1;
    for(i=1;i<75;i++)
        a[i]=i;
    for(i=1;i<75;i++)
        if(i%2)
        {
            b[j]=i;
            j++;
        }
        else
        {
            c[x]=i;
            x++;
        }
    for(i=1;i<=38;i++)
        cout<<b[i]<<" ";
    cout<<endl;
    for(i=1;i<=37;i++)
        cout<<c[i]<<" ";
    cout<<endl;
}
B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
21.10.2013, 02:28     Программа выдаёт не ту информацию, которая необходима #8
DU, int B[37] вызывает "stack aroud the variable 'B' was corupted" по окончанию вывода результата.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2013, 02:32     Программа выдаёт не ту информацию, которая необходима
Еще ссылки по теме:

C++ Программа которая будет считывать информацию с монитора
Программа выдаёт ошибку при вызове деструктора C++
C++ Программа не выдаёт нужный ответ
Программа выдаёт ошибку: warning C4244 C++
C++ Программа, которая запрашивает у пользователя его имя, год рождения, а затем выводит эту информацию на экран

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

Или воспользуйтесь поиском по форуму:
Roman K
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 13
21.10.2013, 02:32  [ТС]     Программа выдаёт не ту информацию, которая необходима #9
DU, B@R_LOG, Br8k, спасибо вам за помощь.
Yandex
Объявления
21.10.2013, 02:32     Программа выдаёт не ту информацию, которая необходима
Ответ Создать тему
Опции темы

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