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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2019, 17:03   #1
Yokai0
Новичок
Джуниор
 
Регистрация: 15.12.2019
Сообщений: 3
Печаль Исключение точки останова в функции feof

Язык си. Выдает исключение в feof. Как исправить?

Код:
#include<stdio.h>
#include <stdarg.h>
#include <conio.h>
#include<string.h>
#pragma warning(disable : 4996)
#define MAX_Size 100
#define Count_marks 3
struct Student
{
	char surname[50];
	char name[50];
	int year;
	int month;
	int day;
	int marks[Count_marks];
};
typedef struct student Student_st;

void readFromFile(char* fileName, struct Student arr[MAX_Size], int* size);// or char fileName [] | int*size - розмір масиву структур, вихідне значення 
void Output(struct Student arr[MAX_Size], int size);
void swap(struct Student* a, struct Student* b);
void Sorting(struct Student arr[MAX_Size], int size);
void lowermedian(struct Student arr[MAX_Size], int size);
int main()
{
	struct Student array[MAX_Size];
	int size;
	readFromFile("fp.txt", array, &size);
	Output(array, size);
	Sorting(array, size);
	printf("\n");
	Output(array, size);
	//print_two_best(array, size);
	_getch();
	return 0;
}

void readFromFile(char* fileName, struct Student arr[MAX_Size], int* size)
{
	FILE* fl;
	fl = fopen(fileName, "rt");
	int i = 0;

	while (!feof(fl))
	{
		int sum = 0;
		fscanf(fl, "%s%s%s%d%d%d", &arr[i].surname, &arr[i].name, &arr[i].year, &arr[i].month, &arr[i].day);
		for (int j = 0; j < Count_marks; j++)
		{

			fscanf(fl, "%d", &arr[i].marks[j]);
			sum += arr[i].marks[j];
		}
		i++;
	}
	*size = i;
	fclose(fl);
}
void Output(struct Student arr[MAX_Size], int size)
{
	printf("size = %d\n", size);
	for (int i = 0; i < size; i++)
	{
		printf(" %-25s|", arr[i].surname);
		printf(" %-25s|", arr[i].name);
		printf(" %-25d|", arr[i].year);
		printf(" %-25d|", arr[i].month);
		printf(" %-25d|", arr[i].day);
		for (int j = 0; j < Count_marks; j++)
		{
			printf(" %d | ", arr[i].marks[j]);
		}
		printf("\n");
	}
}
void Sorting(struct Student arr[MAX_Size], int size)
{
	for (int i = 0; i < size - 1; i++)
	{
		for (int j = 0; j < size - i - 1; j++)
		{
			if (arr[j].year > arr[j + 1].year )
			{
				swap(&arr[j], &arr[j + 1]);
			}
		}
	}
}
void swap(struct Student *a, struct Student *b)
{
	struct Student temp = *a;
	*a = *b;
	*b = temp;
}

void lowermedian(struct Student arr[MAX_Size], int size)
{
	    	double midl_marks[MAX_Size];
			for (int i = 0; i < size; i++)
			{
				midl_marks[i] = 0;
				for (int j = 0; j < Count_marks; j++)
				{
					midl_marks[i] += arr[i].marks[j];
		
				}
				midl_marks[i] /= Count_marks;
			}
		
			printf("midlle mark : \n");
			for (int i = 0; i < size; i++)
			{
				printf("%lf ", midl_marks[i]);
			}
			printf("\n");

			int count = 0;
			double lower[MAX_Size];
			for (int i = 0; i < 5; i++)
			{
				for (int j = 0; j < 13;i++)
				{
					count = (arr[j].marks);
				}
				printf("%i", count / 3);
				count = 0;
			}

}
Yokai0 вне форума Ответить с цитированием
Старый 15.12.2019, 20:17   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

А файл открылся? Вы же не проверяете результат
Black Fregat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точки останова в повторяющихся фрагментах кода cyberdev Общие вопросы C/C++ 27 15.03.2018 12:03
Помогите найти ошибку: *.exe вызвал срабатывание точки останова Gretchem Waide Помощь студентам 2 04.11.2014 18:02
[РЕШЕНО] не работают точки останова VVkSoft Общие вопросы Delphi 9 31.10.2011 15:16
Точки останова Spot Общие вопросы Delphi 8 24.07.2010 19:56