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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2014, 19:29   #1
b0nny
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 22
По умолчанию Программа для ввода и вывода фамилий и оценок студентов. Отберите тех, у которых сумма баллов вторая по величине

Программа для ввода и вывода фамилий и оценок студентов. Отберите тех, у которых сумма баллов вторая по величине

Код:
#include<stdio.h>
#include<conio.h>
#include<iostream> 
#include<string.h>

struct Student
{
	char fam[20];
	int mark[4];
	int filter;
};

Student a[20]; // Массив

void Input(int n);
void Print(int n);
void Filter(int n);

main()
{
	char n=2;
	Input(n);
	char fam[20];
	//printf("Искать: "); scanf("%s",&mark);
	Filter(n);
	Print(n);
	system("pause"); 
	return 0;
}

// Функция ввода данных
void Input(int n) // Кол-во студентов
{
	//цикл по всем студентам
	for (int i=0;i<n;i++)
  {
  	//цикл по всем студентам
		printf("Фамилия: "); scanf("%s",&a[i].fam);
    for (int j=0;j<4;j++)
    {
			//ввод j+1 оценки
			printf("Оценка %d: ",j+1); scanf("%d",&a[i].mark[j]);
    }
		a[i].filter=1;
  } 
}

//Функция вывода данных
void Print(int n)
{
	//вывод заголовков
	printf("Фамилия		Оценка_1 Оценка_2 Оценка_3 Оценка_4\n");
	//цикл по всем студентам
	for (int i=0;i<n;i++)
	{
		if (a[i].filter==1)
		{
			//ввод фамилии
			printf("%15s",a[i].fam);
			for (int j=0; j<4; j++)
			{
				//ввод j+1 оценки
				printf("%6d	",a[i].mark[j]);
			}
			printf("\n");
		}
	}
}

//Отбор записей
void Filter(int n)
{
	int max=0,max2=-1;
	for (int i=0;i<n;i++)
	{
		// ищем max - cамую большую сумму баллов и
		// одновременно max2 чуть меньшую сумму
		(max>max2)
	}
	for (int i=0;i<n;i++)
	{
		int sum=a[i].mark[0]+a[i].mark[1]+a[i].mark[2]+a[i].mark[3];
		if (sum==max2) a[i].filter=1;
		else a[i].filter=0;
	}
}
Помогите с последней функцией отбора записей...
b0nny вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести номера тех столбцов, сумма элементов которых меньше нуля, и число таких столбцов Half Помощь студентам 7 16.04.2012 21:23
Написать рекурсивную процедуру для ввода с клавиатуры последовательности чи-сел (конец ввода – 0) и вывода её на экран в обратном netiv Паскаль, Turbo Pascal, PascalABC.NET 1 17.02.2012 18:14
Сформировать вектор Х из тех элементов вектора А, сумма цифр которых в десятичной записи больше заданного Dimati87 Помощь студентам 1 06.03.2009 14:36