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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2012, 11:08   #1
Артём Волжанкин
Пользователь
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Сообщений: 99
По умолчанию Ошибка в выводе структуры (С++)

Не могу понять в чем моя ошибка. Надо вывести после заполнения только те записи, в которых среднее арифметическое оценок больше 4, а выводит все записи.

Код:
#include<iostream>
#include<locale>
using namespace std;

void main(){
	setlocale(LC_ALL, "RUS");

	struct STUDENT{
	string FIO;                       // Ф.И.О.
	unsigned int NOMER;          // номер группы
	int mas[5];                      //массив оценок
	} STUDENT[10];

	cout << "Заполните данные";
		for (int i=0; i<10; i++){
			cout << "\nВведите фамилию: ";
			cin >> STUDENT[i].FIO;
			cout << "\nВведите номер группы: ";
			cin >> STUDENT[i].NOMER;
			cout << "\nВведите пять оценок: \n";
			for (int j=0; j<5; j++)
			cin >> STUDENT[i].mas[j];
		}

	for (int j=0; j<10; j++)                                 // сортировка массива по номеру группы в соответствии с заданием
		for (int i=0; i<9; i++)
			if (STUDENT[i].NOMER>STUDENT[i+1].NOMER) swap(STUDENT[i], STUDENT[i+1]); 

	int sum=0;  // сумма оценок
	int l=0;                                          // 0 - вывод производился; >0 - нет студентов sum/5>4 
	for (int i=0; i<10; i++){    // цикл прохода по записям
		sum=0;              // обнуляю при каждом проходе 
		for (int k=0; k<10; k++) sum+=STUDENT[i].mas[k]; // подсчет суммы оценок
		if ((sum/5) > 4) { // проверка по заданию
			l++;        
			cout << "\n ";
			cout << STUDENT[i].FIO << "\n" << STUDENT[i].NOMER << "\n";
		}
	}

	if (l==0) cout << "\nТаких студентов нет";
	system("PAUSE >> VOID");
}
Человек
Артём Волжанкин вне форума Ответить с цитированием
Старый 09.07.2012, 11:18   #2
AlexMas
Пользователь
 
Аватар для AlexMas
 
Регистрация: 30.05.2012
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Артём Волжанкин Посмотреть сообщение
Код:
k=0; k<10; k++) sum+=STUDENT[i].mas[k]; // подсчет суммы оценок
[/CODE]
зачем 10 оценок складывать? =)
мусор в сумму идет, вот и берет все записи
AlexMas вне форума Ответить с цитированием
Старый 09.07.2012, 11:24   #3
Артём Волжанкин
Пользователь
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Сообщений: 99
По умолчанию

Цитата:
Сообщение от AlexMas Посмотреть сообщение
мусор в сумму идет, вот и берет все записи
Спасибо большое!
Человек
Артём Волжанкин вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при выводе xml DKENT Работа с сетью в Delphi 0 08.02.2011 21:49
Ошибка при выводе trad Общие вопросы C/C++ 7 15.01.2011 11:32
ошибка в выводе StringGrid Driver_09 Помощь студентам 10 02.06.2010 20:17
ошибка в выводе данных поиска bloger PHP 1 10.03.2010 17:07