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

неправильный цикл for - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не могу совладать - подскажите как формулу написать http://www.cyberforum.ru/cpp-beginners/thread740625.html
хотя бы первую строку для примера
C++ Создать функцию, позволяющую выяснить, присутствует ли в строке введенная с клавиатуры буква (Использовать указатели) помогите,пожалуйста! есть вот такие задания...ОЧЕНЬ надо на завтра... Задача 5. Ввести строку. Создать функцию, позволяющую выяснить, присутствует ли в строке введенная с клавиатуры буква. Если да, то заменить все её вхождения парой символов „$$”. Если этой буквы нет в строке, то вывести соответствующее сообщение. (Использовать указатели). Хоть что-то,если не сложно! ЗАРАНЕЕ СПАСИБО!!! http://www.cyberforum.ru/cpp-beginners/thread740618.html
Из матрицы получить массив, каждый элемент которого равен среднему арифметическому каждой строки матрицы C++
Очень прошу помочь! Из 2мерной квадратной матрицы (7х7) получить 1мерный массив, каждый элемент которого равен среднему арифметическому каждой строки матрицы. это в с++ (работаю в Builder)
C++ Создать два массива. Вычислить количество тех элементов каждого массива, для которых выполняется неравенство: 2<элемент массива<10
помогите,пожалуйста! есть вот такие задания...ОЧЕНЬ надо на завтра... Задача 4. Определить два одномерных массива А(19) и В(16); первый ввести с клавиатуры, а второй задать начальной инициализацией. Используя собственную функцию, вычислить количество тех элементов каждого массива, для которых выполняется неравенство: 2<элемент массива<10. (Использовать указатели) Хоть что-то,если не...
C++ Составить функцию нахождения площади равностороннего треугольника http://www.cyberforum.ru/cpp-beginners/thread740610.html
помогите,пожалуйста! есть вот такие задания...ОЧЕНЬ надо на завтра... \Вопрос 3. Составить функцию, которая получает как аргумент вещественное число а – длину стороны равностороннего треугольника и возвращает как результат площадь треугольника. (Использовать указатели) Хоть что-то,если не сложно! ЗАРАНЕЕ СПАСИБО!!!
C++ Пусть даны вещественные числа a,h, натуральное число n Пусть даны вещественные числа a,h, натуральное число n.Вычислить: f(a)+f(a+h)+f(a+2h)+...+f(a+nh) , где f(x)=(x^2+1)cosx подробнее

Показать сообщение отдельно
9cbka
2 / 2 / 0
Регистрация: 13.10.2012
Сообщений: 60
21.12.2012, 00:59     неправильный цикл for
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
class anketa: public fio, public svedeniya
{
    public:
        friend void run(anketa object1[],  int n);
        
        double sort(anketa *,int n);    // прототип функции сортировки по среднему балу
        double horoshist(anketa *,int n); // прототип функции вывод студентов у которых 4 и 5
    
};
double anketa::sort(anketa* ob2,int  n)
{
         double s; //перемееная для подсчета суммы балов каждого студента
         double *avg = new double [n]; //выделяем память под массив хранящщего средние балы каждого студента
    
         //находим средний бал каждого студента
         for(int  i = 0; i < n; i++)
         {
            s = 0.;
            for(int j = 0; j < 4; j++)
            {
                s += ob2[i].srball[j];
                avg[i] = s / 4;
            }
        }
 
        bool flag = true; //обьявляем булевую переменную и даем есть значение "истина"
        
        while(flag) //пока "истина" делаем
        {
            flag = false;  //устанавливаем переменную в "ложь"
                    
            for(int i = 0; i < n - 1; ++i)
            {
                if(avg[i] > avg[i + 1]) //если элемент массива большн следующий элемент, тогда
                {
                    //меняем массивы в объекте местами
                    anketa x = ob2[i];
                    ob2[i] = ob2[i + 1];
                    ob2[i + 1] = x;
                    
                    //а также меняем местами и элементы в массиве средних оценок 
                    double temp = avg[i];
                    avg[i] = avg[i + 1];
                    avg[i + 1] = temp;
           
                    flag = true; //устанавлюем в "истина"
                }
            }
        }
        //выводим на экран отсортированную 
        for(int i = 0; i < n; i++)
        { 
            cout << ob2[i].name << '\t' << ob2[i].group; 
            for(int j = 0; j < 4; j++)
            {
                cout << '\t' << ob2[i].srball[j];
                
            }
            cout << "\t" << avg[i]; //выводим на экран средний бал
            cout << endl;
        }  
        delete [] avg; //освобождаем память
   return 0;
}
}
void anketa::set(anketa ob1[], int n)
{
    cout<<"Введите фамилию: ";
    cin>>lastname;
    cout<<"Введите имя: ";
    cin>>name;
    cout<<"Введите отчество: ";
    cin>>middlename;
    cout<<"Номер группы: ";
    cin>>group;
    cout<<"Средний балл студента: ";
    int i=0;
    for(i = 0; i < n; i++)
    { 
        for(int j = 0; j < 4; j++)
        {
            cin>>ob1[i].srball[j];
        }
   }   
    
    cout<<"Доход на каждого члена семьи: ";
    cin>>dohod;
}
 
 
int main()
{ 
    int n,i,j;
    cout << "Введите количество студетов: ";
    cin >> n;
    cout<<endl;
    anketa *ob1 = new anketa [n]; //выделение динамической памяти под массив объектов
    cout<<"Введите сведения о студенте!"<<endl;
    for(i=0; i<n; i++)
    {
        ob1[i].set(ob1,n);
        cout<<"/////////////////////////////////"<<endl;
    }
     anketa a;
     a.sort(ob1, n); //вызываем функцию сортировки
    
 
    
    getch();
    return 0;
}
когда ввожу оценки, вводиться в 2 раза больше.
как можно исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru