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

Таблица на двумерном массиве или структуре - C++

Восстановить пароль Регистрация
 
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 694
21.02.2013, 21:30     Таблица на двумерном массиве или структуре #1
Задача: Написать программу со вводом имен 10 студентов, вводом 10 оценок каждому, вывод результата в виде таблицы с подсчетом ср. арифм. для каждого студента и ср. арифм. для всех студентов.

Через структуры проблема заключается в том, что в структуре не удается задать массив типа int для оценок.

А через Двумерный массив не ясно как оперировать с int(оценками) и char(именами студентов) в одном массиве.

Где собака зарыта?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2013, 21:30     Таблица на двумерном массиве или структуре
Посмотрите здесь:

C++ Указатели в двумерном массиве
C++ Ошибка в двумерном массиве
C++ В двумерном массиве подсчитать
C++ Палиндром в двумерном массиве
Указатели в двумерном массиве C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
21.02.2013, 21:56     Таблица на двумерном массиве или структуре #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct student
{
char fio;
int otc[10];
} mas[10;]
...
for (i=0;i<n;i++)
{
cout << "" Fio"; cin mas[i].fio;
cout << "" 10 otcenok"; 
for (j=0;j<n;j++)
{
cin <<mas[i].otc[j];sr+=mas[i].otc[j];}
sr\=10;
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 694
21.02.2013, 22:24  [ТС]     Таблица на двумерном массиве или структуре #3
Мой код был таким же, единственное напомнили обращение к i-тым и j-м эл. массива структур. Результат: все та же ошибка: no match for 'operator>>' in 'std::cin >> mas[i].student::otc'

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
#include <iostream>
 
using namespace std;
 
struct student
{
char fio[50];
int otc[10];
} mas[10];
 
int main()
{
int i,j,n=2, sr;
for (i=0;i<n;i++)
{
cout << "Fio";
cin>>mas[i].fio;
cout << "10 otcenok";
cin>>mas[i].otc;}
for (j=0;j<n;j++)
{
sr+=mas[i].otc[j];}
cout <<sr/10;
}
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
21.02.2013, 22:32     Таблица на двумерном массиве или структуре #4
заполнение оценок должно быть в цикле
Цитата Сообщение от Satansoft Посмотреть сообщение
cout << "Fio";
cin>>mas[i].fio;
cout << "10 otcenok";
for (j=0;j<n;j++)
{
cin>>mas[i].otc;
sr+=mas[i].otc[j];}
cout <<sr/10;
}
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 694
21.02.2013, 22:43  [ТС]     Таблица на двумерном массиве или структуре #5
Понял, но оно не из-за этого ошибку выбивает)
Подкорректировал, и ещё, я так понял присвоение += - это присвоение суммы всех чисел введенных в массив? а нужно ещё среднее по каждому студенту и это до sr+= использовать cout<<mas[i].otc[j]/10;, можно ведь при таком обращении оперировать с элементом, как с переменной?
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
21.02.2013, 22:56     Таблица на двумерном массиве или структуре #6
+= это сокращенная запись число = число + что-то
по среднему баллу по студенту можно просто добавить еще одно поле в Вашу структуру, а потом просто проссумировать их и разделить на количество студентов - вот оно Ваше среднее по всем
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 694
21.02.2013, 23:06  [ТС]     Таблица на двумерном массиве или структуре #7
С массивом типа int та же проблема: no match for 'operator>>' in 'std::cin >> mas[i].student::otc'.
И какова тогда ф-я:
C++
1
2
sr+=mas[i].otc[j];
cout <<sr/10;
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
22.02.2013, 00: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
#include <iostream.h>
#include <string.h>
 
int main()
{
    double SB=0;
    int i,n=2,j;
    struct student
{
char fio[20];
int o[2];
double sr;
} mas[10];
 
for (i=0;i<n;i++)
{
cout << " Fio";
cin >> mas[i].fio;
cout << "2 otcenok"; 
mas[i].sr=0;
for (j=0;j<n;j++)
{
cin>>mas[i].o[j];
mas[i].sr+=mas[i].o[j];
}
mas[i].sr=mas[i].sr/2;
SB+=mas[i].sr;
}
 
cout << SB;
    return 0;
}
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 694
22.02.2013, 01:10  [ТС]     Таблица на двумерном массиве или структуре #9
А вот рабоче-крестьянская версия, ибо с обращением к массивам не дружу с детства:
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
#include <iostream>
 
using namespace std;
 
struct student
{
char fio[25];
int otc0, otc1, otc2, otc3, otc4, otc5, otc6, otc7, otc8, otc9;
} mas[10];
 
int main()
{
int i,n=2, sr;
for (i=0;i<n;i++)
{
cout << "Fio"<<endl;
cin>>mas[i+1].fio;
cout << "10 otcenok"<<endl;
cin>>mas[0].otc0;
cin>>mas[1].otc1;
cin>>mas[2].otc2;
cin>>mas[3].otc3;
cin>>mas[4].otc4;
cin>>mas[5].otc5;
cin>>mas[6].otc6;
cin>>mas[7].otc7;
cin>>mas[8].otc8;
cin>>mas[9].otc9;
sr=mas[0].otc0+mas[1].otc1+mas[2].otc2+mas[3].otc3+mas[4].otc4+mas[5].otc5+mas[6].otc6+mas[7].otc7+mas[8].otc8+mas[9].otc9;
cout<<"------------"<<endl;
cout<<sr/10<<endl;
cout<<"------------"<<endl;
}
}
Как вывести ср. арифм по всем студентам? надо какое-то бла-бла-бла, в которое нужно записать результаты всех итераций с sr и разделить это на n, КАК реализовать бла-бла-бла?
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
22.02.2013, 01:17     Таблица на двумерном массиве или структуре #10
Я Вам сверху рабочую версию вложила)и средний бал по всем посчитала)
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 694
22.02.2013, 01:22  [ТС]     Таблица на двумерном массиве или структуре #11
Собсно она как и моя считает среднее по студенту, а не общее, в 26 строке:
C++
1
mas[i].sr=mas[i].sr/4;
В вышеотписанной строке ошибка: 2 студента по 2 оценки - это 4. А как просуммировать итерации так и не понял ни у вас, ни у себя...
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
22.02.2013, 01:27     Таблица на двумерном массиве или структуре #12
C++
1
2
mas[i].sr=mas[i].sr/2;
SB+=mas[i].sr;
я для облегчения ввода сделала 2 студента и 2 оценки: средний бал студента сидит в mas[i].sr, а средний бал по всем - SB
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 694
22.02.2013, 01:35  [ТС]     Таблица на двумерном массиве или структуре #13
облегчение вижу, но проверьте результат, я вижу присвоение mas[i].sr предыдущий результат деленный на 2 и зачем-то повторное присвоение этого же значения переменной SB...ну не считает оно общую.
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
22.02.2013, 01:43     Таблица на двумерном массиве или структуре #14
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
int main()
{
    double SB=0;
    int i,n=2,j;
    struct student
{
char fio[20];
int o[2];
double sr;
} mas[10];
 
for (i=0;i<n;i++)
{
cout << " Fio";
cin >> mas[i].fio;
cout << "3 otcenok"; 
mas[i].sr=0;
for (j=0;j<3;j++)
{
cin>>mas[i].o[j];
mas[i].sr+=mas[i].o[j];
}
mas[i].sr=mas[i].sr/2;
SB+=mas[i].sr/2;
}
cout << endl;
for (i=0;i<n;i++)
{
 cout << mas[i].fio << " " << mas[i].sr;
 cout << endl;}
 
cout << SB;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2013, 01:51     Таблица на двумерном массиве или структуре
Еще ссылки по теме:

С++ Рандом в двумерном массиве C++
C++ Количество нулевых, или положительных, или отрицательных элементов в двумерном массиве
Строки в двумерном массиве C++

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

Или воспользуйтесь поиском по форуму:
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 694
22.02.2013, 01:51  [ТС]     Таблица на двумерном массиве или структуре #15
Благодарю, только все равно ошиблись, в строке 23 надо делить на колич. оценок, которых 3, а не 2. А в 24 строке лучше делить на n, универсальней так и за форм-фактор таблицы отдельная благодарнозззть. Спите спокойно.
Yandex
Объявления
22.02.2013, 01:51     Таблица на двумерном массиве или структуре
Ответ Создать тему
Опции темы

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