Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

30.05.2009, 20:10
|
|
Новичок
Регистрация: 19.04.2009
Сообщений: 12
Провел на форуме: 19399
Репутация:
5
|
|
Работа с файлами
Создать файл, содержащий сведения о результатах охоты.
Данные должны быть представлены в виде следующей структуры:
-фамилия охотника;
-количество убитых животных;
-общая масса всех животных.
Написать программу, которая находит самого результативного охотника-за количеством животных и по весу животных.
Каждую из функций разместить в отдельном заголовочном файле.
На чем я остановился?
Код:
#include <stdio.h>
#include <stdlib.h>
#define FILE_NAME "file.txt"
struct oxota
{
char prizvishe;
int vpol;
int vaga;};
void main ()
{
struct oxota data[100];
char line[100];
int v=0;
FILE*fp=fopen(FILE_NAME, "r");
while (fgets(line, sizeof(line), fp)!=NULL)
{
sscanf(line, "%s %i %i", &data[v].prizvishe, &data[v].vpol, &data[v].vaga);
printf("%s", line);
v++;
}
printf("\n");
}
|
|
|

30.05.2009, 20:24
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
В каком виде строки в файле?
|
|
|

30.05.2009, 20:29
|
|
Новичок
Регистрация: 19.04.2009
Сообщений: 12
Провел на форуме: 19399
Репутация:
5
|
|
пример 2 записей
Код:
Babyrka 12 300
Pupkin 13 200
|
|
|

30.05.2009, 21:06
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Код:
// main.cpp
#include //
#include "readname.h"
#include "readmass.h"
#include "readcount.h"
const int N = 10;
int main () {
const char* name;
scanf_s("%s",&name);
FILE *f;
char* names;
int* mass;
int* count;
char buffer[256];
f=fopen(name, "r");
if (f) {
while (fgetc(f)!=EOF) {
for (int i=0; N; i++) {
fgets(buffer, 256, f);
readname(i, names, buffer);
readmass(i, mass, buffer);
readcount(i, count, buffer);
}
}
}
int maxcount=0;
int C=0;
int maxmass=0;
int m=0;
for (int i=0; N; i++) {
if (mass[i]>maxmass) {
maxmass=mass[i];
m=i; }
if (count[i]>maxcount) {
maxcount=count[i];
C=i; }
}
for (int i=0; N; i++) {
if (mass[i]=maxmass)
printf(" Максимальная масса %s", &name[m]);
if (count[i]=maxcount)
printf(" Максимальное количество %s", &name[C]);
}
return 0;
}
Код:
// readname.h
#include //
void readname(int i, char* names, char* buffer) {
char c;
while (1) {
sscanf_s(buffer, "%c", &c);
if (c==' ') break;
names[i]+=c;
}
}
Код:
// readcount.h
#include //
void readcount(int i, int* count, char* buffer) {
char c;
char* temp;
while (1) {
sscanf_s(buffer, "%c", &c);
if (c==' ') break;
temp+=c;
}
count[i]=atoi(temp);
}
Код:
// readmass.h
#include //
void readmass(int i, int* mass, char* buffer) {
char c;
char* temp;
while (1) {
sscanf_s(buffer, "%c", &c);
if (c==' ') break;
temp+=c;
}
mass[i]=atoi(temp);
}
Последний раз редактировалось Fata1ex; 31.05.2009 в 15:01..
|
|
|

30.05.2009, 21:14
|
|
Новичок
Регистрация: 19.04.2009
Сообщений: 12
Провел на форуме: 19399
Репутация:
5
|
|
а можно просто на C?а то преподы порешают 
|
|
|

31.05.2009, 00:54
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
я не пойму в чем сложность? ну считал ты всех охотников в массив. отправляй этот массив в функции, считающие лучшего охотника. там простой цикл.
в первой функции переменные типа
Код:
int cur_max_kills = 0;
int best_hunter_index = 0;
if(cur_max_kills < hunters[i].kills){
cur_max_kills = hunters[i].kills;
best_hunter_index = i;
}
эти функции, которые вычисляют лучших охотников, вообще мало чем привязаны к си \ с++, ибо не юзают никакие специфичные классы и функции. чистый самопал.
|
|
|

31.05.2009, 18:06
|
|
Новичок
Регистрация: 19.04.2009
Сообщений: 12
Провел на форуме: 19399
Репутация:
5
|
|
ошибка KRNL386.exe при запуске приложения
|
|
|

31.05.2009, 18:23
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
борланд такой борланд.
на самом деле хз что значит эта ошибка, ибо борланд с++ никада не юзал.
Последний раз редактировалось Ra$cal; 31.05.2009 в 18:29..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|