Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
1

При введении больше 20 чисел программа выдает странный результат

20.08.2013, 16:35. Просмотров 1061. Ответов 4
Метки нет (Все метки)


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
#include <iostream>
#include <locale>
using namespace std;
 
double t1, t2;
 
int main()
{
    setlocale(LC_ALL, "RUS");
 
    int b, i, f,g;
    double c, c1;
 
    cout << "Введите кол-во учащихся: ";
    cin >> b;
 
    int* mas = new int [b];
    int* mas_1 = new int [b];
 
    cout << "Введите оценки 1 класса" << '\n';
    for (i=1; i<=b; i++){
        cout << i << ": ";
        cin >> f;
        if (f<1 || f >5){
        cout << "\nВведите оценку от 1 до 5: ";
        cin >> f;
        }
        else mas[i] = f;
    }
    cout << "\nВведите оценки 2 класса" << '\n';
    for (g=1; g<=b; g++){
        cout << g << ": ";
        cin >> f;
        if (f<1 || f >5){
        cout << "\nВведите оценку от 1 до 5: ";
        cin >> f;
        }
        else mas_1[g] = f;
    }
    c=c1=0;
    for (i=1; i<=b; i++) {
        c=c+mas[i];
    }
    for (g=1; g<=b; g++) {
        c1=c1+mas_1[g];
    }
    cout << "Средняя оценка 1 класса: " << (int)c/b << '\n';
    cout << "Средняя оценка 2 класса: " << (int)c1/b << '\n';
    system("pause");
    return 0;
}
При введении больше 20 чисел выдает странный результат, в чем ошибка?
И как сделать чтобы был цикл вечен, т.е. вот например пользователь вводит 0, а потом опять 0, и чтобы он вводил до тех пор пока не введет правильно.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2013, 16:35
Ответы с готовыми решениями:

Программа выдает очень странный результат
Доброго времени суток, уважаемые программисты. За написанием очередного кода я столкнулся с одной...

Выдает очень странный конечный результат при вычеслении простой математической формулы
#include &lt;stdio.h&gt; #include &lt;Windows.h&gt; main() { SetConsoleCP(1251);...

Программа с генератором случайных чисел не всегда выдает корректный результат
Небольшой &quot;шедевр&quot;. Вроде бы синтаксис верный, а вот работает периодически с ошибками. Как вы...

при введении конечных данных выдает ошибку
type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; StringGrid1:...

4
Don't worry, be happy
16968 / 9849 / 1897
Регистрация: 27.09.2012
Сообщений: 24,420
Записей в блоге: 1
20.08.2013, 16:36 2
Цитата Сообщение от Toshik_ Посмотреть сообщение
в чем ошибка?
В том, что индексация в массиве начинается с нуля. У Вас выход за пределы выделенной памяти
0
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
20.08.2013, 16:38  [ТС] 3
Цитата Сообщение от Croessmah Посмотреть сообщение
В том, что индексация в массиве начинается с нуля. У Вас выход за пределы выделенной памяти
А как исправить?
0
5479 / 4874 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.08.2013, 16:50 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Toshik_ Посмотреть сообщение
А как исправить?
C++
1
2
3
4
5
6
7
8
9
10
cout << "Введите оценки 1 класса" << '\n';
    for (i=0; i<b; i++){
        cout << i << ": ";
        cin >> f;
        if (f<1 || f >5){
        cout << "\nВведите оценку от 1 до 5: ";
        cin >> f;
        }
        else mas[i] = f;
}
0
Don't worry, be happy
16968 / 9849 / 1897
Регистрация: 27.09.2012
Сообщений: 24,420
Записей в блоге: 1
20.08.2013, 16:53 5
Цитата Сообщение от Toshik_ Посмотреть сообщение
А как исправить?
Почитать учебник или хотя бы главу о массивах
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2013, 16:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Стирать результат работы калькулятора при введении числа
Здравствуйте. Есть работающий калькулятор Код Calculator.java import javax.swing.*; import...

Компилятор при делении больших чисел выдает не верный результат
Здравствуйте. Я только осваиваю азы программирования на С++. Компилятор используется g++ Нужно...

программа выдает результат только при некоторых значениях (ввод и сортировка массива методом пузырька)
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL,...

При использовании оператора GOTO зацикливается программа при введении букв.
Приветствую всех новых знакомых в этом храме программирования. Я новичек, пытаюсь программировать в...


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

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

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