Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 15:06   #1
igarek222
 
Регистрация: 08.10.2009
Сообщений: 7
По умолчанию структуры в С

помогите с решением любой из двух задач на любом из языков С (на каком легче и быстрее).

Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также указать, насколько их средний балл отличается от среднего балла класса.

или

Создать записи, определяющие положение точки в декартовой и в полярной системах координат. Считая, что задан массив координат точек в декартовой системе координат, получить соответствующий массив координат заданных точек в полярной системе координат.
igarek222 вне форума Ответить с цитированием
Старый 29.05.2010, 16:50   #2
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Код:
#include <iostream>
#include <vector>

struct Pupil{
    std::string name;
    std::vector< int > rating;
};
// функция считает среднюю оценку ученика
double average( const Pupil &p ){
    double sum = 0;
    for( int i = 0; i < p.rating.size(); ++i )
	sum += p.rating[ i ];
    return sum / p.rating.size();
}
int main(){
    Pupil *pArray;
    int pupilQt = 0;
    std::cout << "Введите количество учеников( > 0 ):\n";
    while( pupilQt <= 0 )
	std::cin >> pupilQt;

    pArray = new Pupil[ pupilQt ];

    int subjectQt = 0;
    std::cout << "Введите количество предметов( > 0 ):\n";
    while( subjectQt <= 0 )
	std::cin >> subjectQt;

    for( int i = 0; i < pupilQt; ++i ){
	std::cout << "Введите фамилию ученика\n";
	std::cin >> pArray[ i ].name;
	std::cout << "Введите оценки ученика по " << subjectQt << " предмету( ам )\n";
	for( int j = 0; j < subjectQt; ++j ){
	    int tmp;
	    std::cin >> tmp;
	    pArray[ i ].rating.push_back( tmp );
	}
    }

    // считаем среднию оценку
    double averageRating = 0.0;
    for( int i = 0; i < pupilQt; ++i )
	averageRating += average( pArray[ i ] );
    averageRating /= pupilQt;

    const double GOOD_RATING = 4.0;
    for( int i = 0; i < pupilQt; ++i )
	if( average( pArray[ i ] ) >= GOOD_RATING )
	    std::cout << pArray[ i ].name << ' ' << average( pArray[ i ] ) - averageRating << '\n';
}
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры balalay12 Общие вопросы C/C++ 4 28.04.2010 08:57
Структуры C++ Irino4ka-LOL Помощь студентам 1 15.02.2010 08:44
Структуры JulLy Общие вопросы C/C++ 12 01.02.2010 09:23
СТРУКТУРЫ aka_Kiss Общие вопросы C/C++ 13 16.11.2009 20:29
структуры Dimarik Общие вопросы C/C++ 27 10.05.2009 20:22