みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

対情報オリンピックテンプレート

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

対情報オリンピックテンプレート

投稿記事 by みけCAT » 14年前

もうすぐ情報オリンピックの予選ですね。
というわけで今回は情報オリンピック予選に使うためのソースコードのテンプレートです。
どうぞご自由にお使いください。

CODE:

#include 

int main(int argc,char* argv[]) {
	char infile[255],outfile[255];
	FILE* in;
	FILE* out;
	/*declare values*/
	/*open files*/
	sprintf(infile,"%s-in%s.txt",argv[1],argv[2]);
	sprintf(outfile,"%s-out%s.txt",argv[1],argv[2]);
	in=fopen(infile,"r");
	if(in==NULL)return 1;
	out=fopen(outfile,"w");
	if(out==NULL) {
		fclose(in);
		return 1;
	}
	/*do work*/
	/*file close*/
	fclose(in);
	fclose(out);
	return 0;
}
たとえば2011-yo-t1-in1.txtから入力して2011-yo-t1-out1.txtに出力する場合は、コマンドラインに
2011-yo-t1 1
と指定します。
入力の番号と出力の番号を一度に指定することで、入力と出力の対応を間違えないようになっています。

使用例はこちらです。
nを一行で読み込んでn!を一行で出力するプログラムです。

CODE:

#include 

int main(int argc,char* argv[]) {
	char infile[255],outfile[255];
	FILE* in;
	FILE* out;
	/*declare values*/
	unsigned long long n;
	unsigned long long ans;
	unsigned long long i;
	/*open files*/
	sprintf(infile,"%s-in%s.txt",argv[1],argv[2]);
	sprintf(outfile,"%s-out%s.txt",argv[1],argv[2]);
	in=fopen(infile,"r");
	if(in==NULL)return 1;
	out=fopen(outfile,"w");
	if(out==NULL) {
		fclose(in);
		return 1;
	}
	/*do work*/
	fscanf(in,"%I64u",&n);
	ans=1;
	for(i=1;i<=n;i++)ans*=i;
	fprintf(out,"%I64u\n",ans);
	/*file close*/
	fclose(in);
	fclose(out);
	return 0;
}
アドバイスなどがもしありましたらぜひコメントしてください。

xxx
記事: 26
登録日時: 15年前

Re: 対情報オリンピックテンプレート

投稿記事 by xxx » 14年前

参加したことが無いから分からないけれどIOリダイレクションの方がいい気もしますね・・・
一度に結果もtxtに出力できますし