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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2014, 00:24   #1
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
Смущение Си. Работа с файлами, чтение с файла

Доброй ночи )
Есть такая задачка: есть информация о телефонных разговорах (город, код города, дата(месяц), длительность разговора и тариф). Нужно отыскать город, где в сентябре разговаривали дольше всего.
Код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define maxlength 255 
#define sizestr 100
struct tel {
	char city[20];
	int city_code;  
	char date[4];
	int dlit;
	float tarif;} *call;
int count=0;

main(int argc, char *argv[])
{
	int mem=0, i, n=0, j=0, sept[sizestr], max=0;
	char namef[maxlength];
	char *pnamef;
	char symb;
	FILE *f;

	if(argc<2)
	{ printf("Enter name of file: ");  /*Запрос имени файла*/
	scanf("%s", namef);
	pnamef=namef; }
	else
		pnamef=argv[1]; 
	
	if ((f=(fopen(namef, "r")))==NULL)   //Открытие файла или сообщение об ошибке в противном случае
	{ printf("Not open file\n"); exit (1); }

	printf("File was opened\n");

	while (!feof(f))
		if((symb=fgetc(f))!='\n'||symb!=EOF)  //Подсчет строк
			mem++;

	printf("Info is readed\n");
	fclose(f);

	if ((f=fopen(namef, "r"))==NULL)
	{ printf("Filу not open\n"); exit (1); }

	printf("File is ready to operation\n");
	for (i=0; i<mem; i++)
	{
		fscanf(f,"%c", &call[i].city);
		fscanf(f,"%d", &call[i].city_code);
		fscanf(f,"%c", &call[i].date);
		fscanf(f,"%d", &call[i].dlit);
		fscanf(f,"%f", &call[i].tarif);
	}

	/*Оределение самого длительного разговора в сентябре*/
	for (i=0; i<mem; i++)
		if ((strcmp(call[i].date, "sep"))==0)
		{ sept[j]=call[i].dlit; j++; n++;}

	for (j=0; j<n; j++)
		if (sept[j]>max)
			max=sept[j];
	printf("%s with %d mins", call[i].city, max);
_getch();
return 0;
}
Как вывести название города после вычисления максимальной длительности разговора?..
Вложения
Тип файла: txt filefor3.txt (233 байт, 9 просмотров)
Ans797 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами ( чтение, запись ) в системной папке -Jack- Компоненты Delphi 12 21.10.2014 01:16
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Работа с файлами. Не знаю как правильно реализовать чтение массивов t6fore Паскаль, Turbo Pascal, PascalABC.NET 11 10.01.2013 17:20
Паскаль. Работа с файлами. Проверка файла на существование. McFrey Помощь студентам 6 22.03.2012 18:29