Создать файл, содержащий сведения о результатах охоты. Данные должны быть представлены в виде следующей структуры: -фамилия охотника; -количество убитых животных; -общая масса всех животных. Написать программу, которая находит самого результативного охотника-за количеством животных и по весу животных. Каждую из функций разместить в отдельном заголовочном файле. На чем я остановился? Code: #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"); }
Code: // 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; } Code: // 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; } } Code: // 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); } Code: // 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); }
я не пойму в чем сложность? ну считал ты всех охотников в массив. отправляй этот массив в функции, считающие лучшего охотника. там простой цикл. в первой функции переменные типа Code: 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; } эти функции, которые вычисляют лучших охотников, вообще мало чем привязаны к си \ с++, ибо не юзают никакие специфичные классы и функции. чистый самопал.