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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2017, 15:54   #1
Daha-Doom
Новичок
Джуниор
 
Регистрация: 14.06.2017
Сообщений: 1
Восклицание Помощь со структурами

Дана ведомость абитуриентов, сдававших вступительные экзамены в институт. В каждой строке данной ведомости записана фамилия абитуриента, его местожительство и оценки по отдельным дисциплинам. Необходимо определить количество абитуриентов, проживающих в городе Красноярск и сдавших экзамены со средним баллом не ниже 4, распечатать их фамилии в алфавитном порядке

Код:
#include <fstream>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
	setlocale(0,"");
	const int l_name=20, l_sity=12, l_marks=10, l_buf=l_name+l_sity+l_marks+10;
	struct STUDENT
	{
		char name[l_name+1];
		char sity[l_sity+1];
		int marks;
	};
	const int l_stud=100;
	STUDENT stud[l_stud], a;
	
	char buf[l_buf+1];
	char name[l_name+1];
	char sity[l_sity];
	int i=0, s;
	const char kar[l_sity] = "Krasnoyarsk";
	
	ifstream fin ("stud.txt",ios::in);
	if (!fin) 
	{
		cout<<"Файл не найден"<<endl; return 1;
	}
	
	while (fin.getline(buf, l_buf))
	{
		if (i>=l_stud)
		{
			cout <<"Слишком длинный файл"; return 1;
		}
		strncpy(stud[i].name, buf, l_name);
		stud[i].name[l_name]='\0';
		stud[i].sity=atoi(&buf[l_name]);
		stud[i].marks=atoi(&buf[l_name+l_sity]);
		i++;
	}
	
	int n_record=i, n_student=0;
	
	for (i=0; i<n_record; i++) //Поиск Города
		{
			int q = stud[i].marks/10000;
			int w = stud[i].marks/1000%10;
			int e = stud[i].marks/100%10;
			int r = stud[i].marks/10%10;
			int t = stud[i].marks%10;
			s = q+w+e+r+t;
			float v=s/5.0;
			
			if (strstr(stud[i].sity, kar))
			if (stud[i].sity[strlen(sity)]==' ' && v>=4) //Вывод определённого студента
			{
				strcpy(sity, stud[i].sity);
				cout<<"Имя: "<<stud[i].name<<"  Город: "<<stud[i].sity<<"  Оценки: "<<stud[i].marks<<" Средний бал: "<<v<<endl;
			}
		}
		
	getch();
	return 0;
}
Daha-Doom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь с динамическими структурами Алексей21357 Помощь студентам 3 23.11.2013 21:36
Со структурами запуталась!!!! tanyuxxxa Помощь студентам 21 29.02.2012 10:01
непонятки со структурами harimambura Общие вопросы C/C++ 17 18.02.2012 21:44
Работа со структурами tae1980 Microsoft Office Excel 2 26.11.2010 23:27
Программа с структурами Olya90 Помощь студентам 10 25.04.2009 17:18