ラックナンバーサーチ・トレーニングでベストテンを選び出すフローチャート
1, ラックナンバーサーチ・トレーニングで実行した日付と実行時間が
char dtfile[] = "LACKNUM.DAT" (1つのデータは44バイト)に入っている
2, 並べ替え前の"LACKNUM.DAT"を表示する。大体完了
3, "LACKNUM.DAT"を"best"の小さい順に並べ替える(そのまま表示する。)
並べ替えはquicksortを使う
ラックナンバーサーチ・トレーニング(1部です。必要ないところもあります)
#include <stdio.h>
#include <time.h>
#include <float.h>
#include <ctype.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include "getputch.h"
#define MAX_STAGE 3
#define swap(type, x, y) do { type t = x; x = y; y = t; } while (0)
#define MAX_NUM 10
char dtfile[] = "LACKNUM.DAT"; // ファイル名
// 3, 並べ替え前の"LACKNUM.DAT"を表示する。
//--- 過去のトレーニング情報を取得・表示して最高得点を返す ---
double get_data(void)
{
FILE *fp; // これまでの履歴を指すポインタ
double best; //これまでの履歴の所要時間
if ((fp = fopen(dtfile, "rb")) == NULL) {
printf("ファイルを作成します。\n\n");
best = DBL_MAX; // float.hに定義されている。double型で表現できる最大値を表すマクロDBL_MAX
} else {
int i;
struct tm local;
double line[256];
printf("\n過去の履歴\n-------------------------- \n"); while((i = fread(&local, sizeof(struct tm), 1, fp)) > 0 ){ printf("%d年 %d月 %d日 %d時 %d分 %d秒\n", local.tm_year + 1900, local.tm_mon + 1, local.tm_mday, local.tm_hour, local.tm_min, local.tm_sec); fread(&best, sizeof(double), 1, fp); printf("得点(所要時間)は%.1f秒\n\n", best); fflush(stdin); getchar(); } } fclose(fp); return 0;
}
int main(void)
{
init_getputch();
get_data(); //--- 過去のトレーニング情報を取得・表示して最高得点を返す --- // term_getputch(); return 0;
どなたかおしえていただけませんか。ヒントをいただければ、少しずつ完成していきたいのですが。
回答1件
あなたの回答
tips
プレビュー