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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 21:50   #1
megavolt91
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 24
По умолчанию Структуры. Нужна помощь

Есть задача:
создать массив данных о студентах группы. Записать имя, фамилию, год рождения каждого студента, оценки по пяти экзаменах. Определить средний балл за сессию и отсортировать список по сумме баллов
Код:
#include <stdio.h> 
#include <iostream.h>
#include <conio.h>
struct student // Шаблон структуры 
{ char name[20]; // имя
char fam[30]; // фамилия
int year; // возраст
int mark[5]; // оценки
int average; // Сумма балов
};
student students[30]; // Массив данных по группе
student buffer; // Дополнительная структура
int records; // Количество студентов в группе
int i, j ;
student mass[30]; // Вспомогательные переменные
void main ( )
{ records = 0 ; // Сначала записей нет
do // Заполняем массив структур
{ cout << "Студент № " << records+1 << endl;
cout << "Введите фамилию "; fflush(stdin) ;
cin >> students [records].fam;
cout << "Введите имя ";
cin >> students [records].name;
cout << "Введите возраст ";
cin >> students [records].year;
for(i = 0; i < 5; i++)
{ cout << " Введите оценку по экзамену № " << i+1 << endl;
cin >> students[records].mark[i];
}
records++;
cout << "Остановить работу? [1/0] ";
cin >> i;
} while(i) ;
for(i = 0; i < records; i++) // Подсчитывает сумму баллов
{ students [ i ].average = 0;
for (j=0; j < 5; j++)
students[i].average += students[i].mark[j ];
}
for (i = 0; i < records-1; i++) // сортирует
for (j = i; j < records; j++) // по сумме баллов
if (students[i].average > students[j].average)
{ buffer = mass[i]; // Перестановка элементов
mass[i] = mass[j]; // структуры, особенность
mass[j] = buffer; // языка C/C++
}
for (i = 0; i < records; i++) // Выводим результат
{ cout << "\n Студент " << students[i].name << "\t" << students [i].fam ;
cout << " возраст " << students [i].year; 
cout << " Сре. бал " << students[i].average;
}
}
Нужно переделать так чтобы: в списке студентов группы вычислить количество студентов с именами: Наталья, Владимир, Роман

Последний раз редактировалось megavolt91; 26.05.2009 в 22:10.
megavolt91 вне форума Ответить с цитированием
Старый 26.05.2009, 21:58   #2
DM_bite
Участник клуба
 
Аватар для DM_bite
 
Регистрация: 29.07.2008
Сообщений: 1,091
По умолчанию

Цитата:
Нужно переделать так чтобы: в списке студентов группы вычислить количество студентов с именами: Наталья, Владимир, Роман
Ну, во-первых:используйте тег CODE для оформления кода.Во-вторых:а что, собственно, трудного? Пробегаешь массив структур и проверяешь:
Код:
int k=0;
for ( int i=0; i<30; ++i )
{ if ((students[i].name=='Natalya')||(students[i].name=='Vladimir')||(students[i].name=='Roman')) {++k};
Кто бы ты ни был - не думай о себе слишком (с)
DM_bite вне форума Ответить с цитированием
Старый 26.05.2009, 22:05   #3
megavolt91
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 24
По умолчанию

ошибки вышибают

Error STR2.CPP 52: Character constant must be one or two characters long
Error STR2.CPP 52: Cannot convert 'int' to 'char *'

Последний раз редактировалось megavolt91; 26.05.2009 в 22:10.
megavolt91 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь DIzza Помощь студентам 54 22.02.2009 13:29
нужна помощь... динамические структуры данных lucas Общие вопросы C/C++ 3 22.09.2007 22:06
Нужна помощь! mEka Помощь студентам 2 04.03.2007 01:39
нужна помощь Селезнёв Microsoft Office Excel 1 02.03.2007 03:19