#6
by Math » 5年前
一度に ”564個の平均を26ファイル” 考えると 頭が混乱するので
2個 2ファイル で考えれば十分だよね。
Windows10、CX-Builder 10.3( Borland C [BCC55] 後継 ) 使用
main.c
コード:
#include<stdio.h>
double average(double *a,int n)
{
int i;
double sum=0;
double heikin;
for(i=0;i<n;i++){
sum=sum+a[i];
}
heikin=sum/n;
printf("\n sum=%le n=%d heikin=%le \n",sum,n,heikin); /* calc. check */
return heikin;
}
void main()
{
int i,j,k,n=2; /* テストは n=2 本番では n=564 */
double a[564]; /*配列を定義する*/
FILE *fp_in; /*0:ファイルポインタの宣言(ファイルを扱う場合には,この宣言は必ず必要!)*/
FILE *fp_out;
char filepath[256];
fp_out=fopen("aa1.txt","w");
double Hei_kin;
if(fp_out==NULL){
printf("ファイルがありません\n");
return;
}
printf("------------------------------------------------------------------------------------");
for(j = 1; j <= 2; j++){
sprintf(filepath,"a%d.txt",j);
printf("\n%s\n",filepath); /* file name check */
fp_in=fopen(filepath,"r"); /*1:ファイルを読み込み専用で開く*/
if(fp_in==NULL){ /*1:エラーチェック*/
printf("ファイルがありませんでした.%\n");
return; /*1:プログラムの強制終了*/
}
for(i=0;i<n;i++){
fscanf(fp_in,"%le",&a[i]); /*2:ファイルからデータをスキャンし,配列に格納する.*/
}
k = 10 * j + 40; /* ??? わかんない(^^; */
Hei_kin=average(a,n);
printf("%d %le\n",k,Hei_kin); /*関数に命令を与え,結果を画面に表示する*/
fprintf(fp_out,"%d %le\n", k, Hei_kin);
fclose(fp_in); /*3:ファイルを閉じる(これを忘れると,ファイルが開いたままになる.)*/
}
printf("------------------------------------------------------------------------------------");
fclose(fp_out);
}
cx.bat
コード:
"C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\bcc32" main.cpp
dir main.exe
main.exe
pause
実行する。
http://www2.koyoen.birdview.co.jp/~abcx ... -11-h-.PNG
一度に ”564個の平均を26ファイル” 考えると 頭が混乱するので
2個 2ファイル で考えれば十分だよね。
Windows10、CX-Builder 10.3( Borland C [BCC55] 後継 ) 使用
main.c
[code]
#include<stdio.h>
double average(double *a,int n)
{
int i;
double sum=0;
double heikin;
for(i=0;i<n;i++){
sum=sum+a[i];
}
heikin=sum/n;
printf("\n sum=%le n=%d heikin=%le \n",sum,n,heikin); /* calc. check */
return heikin;
}
void main()
{
int i,j,k,n=2; /* テストは n=2 本番では n=564 */
double a[564]; /*配列を定義する*/
FILE *fp_in; /*0:ファイルポインタの宣言(ファイルを扱う場合には,この宣言は必ず必要!)*/
FILE *fp_out;
char filepath[256];
fp_out=fopen("aa1.txt","w");
double Hei_kin;
if(fp_out==NULL){
printf("ファイルがありません\n");
return;
}
printf("------------------------------------------------------------------------------------");
for(j = 1; j <= 2; j++){
sprintf(filepath,"a%d.txt",j);
printf("\n%s\n",filepath); /* file name check */
fp_in=fopen(filepath,"r"); /*1:ファイルを読み込み専用で開く*/
if(fp_in==NULL){ /*1:エラーチェック*/
printf("ファイルがありませんでした.%\n");
return; /*1:プログラムの強制終了*/
}
for(i=0;i<n;i++){
fscanf(fp_in,"%le",&a[i]); /*2:ファイルからデータをスキャンし,配列に格納する.*/
}
k = 10 * j + 40; /* ??? わかんない(^^; */
Hei_kin=average(a,n);
printf("%d %le\n",k,Hei_kin); /*関数に命令を与え,結果を画面に表示する*/
fprintf(fp_out,"%d %le\n", k, Hei_kin);
fclose(fp_in); /*3:ファイルを閉じる(これを忘れると,ファイルが開いたままになる.)*/
}
printf("------------------------------------------------------------------------------------");
fclose(fp_out);
}
[/code]
cx.bat
[code]
"C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\bcc32" main.cpp
dir main.exe
main.exe
pause
[/code]
実行する。
[url]http://www2.koyoen.birdview.co.jp/~abcxyz/19-03-11-h-.PNG[/url]