• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Список студентов

  • Автор темы Автор темы Ank2503
  • Дата начала Дата начала

Ank2503

Ученик
Регистрация
26 Ноя 2015
Сообщения
1
Реакции
0
Баллы
0
Список студентов

Распечатать анкетные данные студентов, получивших за все время обучения одну оценку 3, а все остальные оценки — 4 и 5. C++.Не знаю почему, но в моем коде выводит всех студентов.

Код:
#include <iostream>
using namespace std;
void main()
{
	int o4=0, o3=0, o5=0;
	typedef struct{
		char f[20];
		int date;
		char k;
		int o[6];
	} Student;
	Student m[5];
	for (int i = 0; i < 5; i++)
	{
		cout << "Insert surname - ";
		cin >> m[i].f;
		cout << "Insert date - ";
		cin >> m[i].date;
		cout << "Insert kurs - ";
		cin >> m[i].k;
			for (int j = 0; j < 6; j++)
			{
				cout << "Insert mark  " ;
				cin >> m[i].o[j];
			}
	}
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < 6; j++)
		{

			if (m[i].o[j] == 3)
				o3 = o3 + 1;
			if (m[i].o[j] == 4)
				o4 = o4 + 1;
			if (m[i].o[j] == 5)
				o5 = o5 + 1;
		}
	}			
		for (int i = 0; i < 5; i++)
		{
						if (o3 = 1) if (o4 = 1) if (o5=1)
			{
				cout << "1." << m[i].f << endl;
				cout << "2." << m[i].date << endl;
				cout << "3." << m[i].k << endl;
				cout << "4.";

				for (int j = 0; j < 6; j++)
				{

					cout << m[i].o[j]<<" ";

				}
				cout << endl;
			}
		}
	
	system("pause");
}
 
Ну во первых непонятно , что вы делаете во втором цикле, вы подсчитываете количество тех или иных оценок ВСЕХ студентов, что по условиям задачи совсем не нужно, вам нужно по каждому студенту отдельно
Во вторых в третьем цикле условия if не совпадают с постановкой задачи
Исправил бы так
Код:
#include <iostream>
using namespace std;
void main()
{
	int ox =0, o4=0, o3=0, o5=0;
	typedef struct{
		char f[20];
		int date;
		char k;
		int o[6];
                int condition; // признак попадания в условия задачи
	} Student;
	Student m[5];
	for (int i = 0; i < 5; i++)
	{
		cout << "Insert surname - ";
		cin >> m[i].f;
		cout << "Insert date - ";
		cin >> m[i].date;
		cout << "Insert kurs - ";
		cin >> m[i].k;
			for (int j = 0; j < 6; j++)
			{
				cout << "Insert mark  " ;
				cin >> m[i].o[j];
			}
	}
	for (int i = 0; i < 5; i++)
	{
               ox = o3 = o4 = o5 = 0;
		for (int j = 0; j < 6; j++)
		{
// оценки меньше 3
                        if (m[i].o[j] < 3) 
                          ox++;
                        
			if (m[i].o[j] == 3)
				o3++;
// проверять сколько 5 и 4 нет смысла
/*			if (m[i].o[j] == 4)
				o4++;
			if (m[i].o[j] == 5)
				o5++;
*/
		}
                 m[i].condition = 0;
                 if (ox==0 && o3==1) m[i].condition = 1;
	}			
		for (int i = 0; i < 5; i++)
		{
		if (m[i].condition==1)
			{
				cout << "1." << m[i].f << endl;
				cout << "2." << m[i].date << endl;
				cout << "3." << m[i].k << endl;
				cout << "4.";

				for (int j = 0; j < 6; j++)
				{

					cout << m[i].o[j]<<" ";

				}
				cout << endl;
			}
		}
	
	system("pause");
}
 
Назад
Сверху