無題
Posted: 2010年11月11日(木) 19:40
Result Data.datにまずデータを書き込み、Result All Data.datにResult Data.datのデータを集計した結果を書き込むプログラムを作りたいと思っているのですがwrite_file2の方に処理が進んでいない(?)ようでうまくいきません
どうすれば上手く動くかお教えください
write_fileとwrite_file2はWindowsプログラムから連続で呼んでいます
どうすれば上手く動くかお教えください
write_fileとwrite_file2はWindowsプログラムから連続で呼んでいます
#include <stdio.h>
void write_file(int write_pt[] , int write_et[] , int write_result[] , int x)
{
FILE *fp;
int i = 0;
fp = fopen("./Data/Result Data.dat" , "a");
for(i = 0; i <= x; i++){
if(write_result == 1){
fprintf(fp , "%d %d %d\n" , write_pt , write_et , write_result);
}
if(write_result == 2){
fprintf(fp , "%d %d %d\n" , write_pt , write_et , write_result);
}
if(write_result == 3){
fprintf(fp , "%d %d %d\n" , write_pt , write_et[i] , write_result[i]);
}
if(write_result[i] == 4){
fprintf(fp , "%d %d %d\n" , write_pt[i] , write_et[i] , write_result[i]);
}
if(write_result[i] == 5){
fprintf(fp , "%d %d %d\n" , write_pt[i] , write_et[i] , write_result[i]);
}
if(write_result[i] == 6){
fprintf(fp , "%d %d %d\n" , write_pt[i] , write_et[i] , write_result[i]);
}
}
fclose(fp);
}
void write_file2(int write_result[]){
FILE *fp;
int i , j , w_count = 0 , l_count = 0 , d_count = 0 , eb_count = 0 , pb_count = 0 , ab_count = 0 , p_sum = 0 , e_sum = 0;
float win_per , lose_per , drow_per , eb_per , pb_per , ab_per , p_ave , e_ave;
int read_pt[1000] , read_et[1000] , read_result[1000];
fp = fopen("./Data/Result Data.dat" , "r");
i = 0;
while(fscanf(fp , "%d %d %d" , read_pt[i] , read_et[i] , read_result[i]) != EOF){
i++;
}
fclose(fp);
fp = fopen("./Data/Result All Data.dat" , "w");
for(j = 0; j <= i; j++){
p_sum += read_pt[j];
e_sum += read_et[j];
if(write_result[j] == 1){
w_count++;
}
if(write_result[j] == 2){
l_count++;
}
if(write_result[j] == 3){
d_count++;
}
if(write_result[j] == 4){
eb_count++;
}
if(write_result[j] == 5){
pb_count++;
}
if(write_result[j] == 6){
ab_count++;
}
}
win_per = ((float)w_count / (float)i) * 100.0;
lose_per = ((float)l_count / (float)i) * 100.0;
drow_per = ((float)d_count / (float)i) * 100.0;
eb_per = ((float)eb_count / (float)i) * 100.0;
pb_per = ((float)pb_count / (float)i) * 100.0;
ab_per = ((float)ab_count / (float)i) * 100.0;
p_ave = (float)p_sum / (float)i;
e_ave = (float)e_sum / (float)i;
fprintf(fp , "%d %d %d %d\n" , i , w_count , l_count , d_count);
fprintf(fp , "%.2f %.2f %.2f\n" , win_per , lose_per , drow_per);
fprintf(fp , "%d %d\n%.2f %.2f %.2f\n" , eb_count , pb_count , eb_per , pb_per , ab_per);
fprintf(fp , "%.2f %.2f\n" , p_ave , e_ave);
fclose(fp);
}