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

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

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

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

21.10.2013, 01:34. Просмотров 349. Ответов 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


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

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

При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так? - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; long Fact(short m)// функция вычисления факториала ...

Программа, которая согласно запросу пользователя выводит информацию об абонентах - C++
Условие: В текстовом файле находятся о номерах телефонов. В каждой строке записана информация об одном абоненте:№ телефона, ФИО, адрес....

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

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

Надо написать функцию которая выдаёт маршрут файла - C++
Помогите пожалуйста!!! Надо написать функцию которая выдаёт маршрут файла!

8
DU
1483 / 1129 / 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++)
1
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

Что ещё нужно исправить ?
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.10.2013, 02:03 #4
36 * 2 = 72, а не 75.
чтобы все напечаталось, размер массивов должен быть 75 / 2 = 34. + обработать ситуацию с нечетными числами, т.к. их количество на еденицу больше. итого один массив должен быть размером 37, другой - 38.
1
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.
Можешь, пожалуйста подправить саму программу и выдать готовую ? Я не совсем понял, что нужно сделать.
0
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;
}
1
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;
}
1
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" по окончанию вывода результата.
1
Roman K
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 13
21.10.2013, 02:32  [ТС] #9
DU, B@R_LOG, Br8k, спасибо вам за помощь.
0
21.10.2013, 02:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2013, 02:32
Привет! Вот еще темы с ответами:

Программа выдаёт ошибки - C++
Здравствуйте. Помогите, пожалуйста, исправить. Программа в Visual C++ выдаёт 2 ошибки и 4 предупреждения в заголовочном файле:#include...

Программа в Visual C++ выдаёт ошибки - C++
Здравствуйте. Скажите, пожалуйста, почему программа выдаёт такие ошибки в заголовочном файле: 1&gt;d:\Program Files (x86)\Microsoft...

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

Написать программу, которая случайным образом выдаёт английские/русские слова - C++
Написать программу, которая случайным образом выдаёт английские/русские слова из заранее созданного словаря(можно в файле), с целью...


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

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

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