劉汝佳学習ノートコレクション

2039 ワード

i==n?' ':'n'
大量計算後、誤差の影響で1が0.9999999になる可能性があるのでfloor(sqrt(n)+0.5)を用いる.continue , break. while .do- while
/%d/%lld%lld(Mingwのgcc)%I 64 d.(しばらく深くは入らない)long longの入出力int nを避けた;scanf("%d",&n)long long n2 = n; タイマー(double)clock()/CLOCK_PER_SEC; 2.4アルゴリズムコンテストにおける入出力フレームワークwhile(scanf("%d",&x)==1){s+=x;if(x>max)max)max=x;n+;…(この入力が終了するcTRL+z LinuxはCtrl+D;//INFの意味を定義INF=100000 max=-INF min=INF;}ファイルはfreopen(「input.txt」,「r」,stdin)にリダイレクトします.freopen("output.txt","w",stdout);上記の文はscanfがファイルinputからprintf書き込みファイルoutputを読み込むようにする.txt . 実際には、すべての読み取りキーボード入力と書き込み画面出力がリダイレクトされます.
リダイレクトの最適化について
#define LOCAL

#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stout);
#endif
                    
FILE *fin ,*fout;
fin =fopen("data.in","rb");
fout=fopen("data.out","wb");
int x ;
while(fscanf(fin,"%d",&x)==1){
s+=x;
if(xmax)max=x;
n++;
}
fprint(fout,"%d %d %.3f
",min,max(double)s/n); fclose(fin); fclose(fout);

//リダイレクトはファイルと標準入出力を同時に読み書きできない.fopenの書き方は少し煩雑ですが、柔軟性が大きい(ファイルを繰り返し開いて読み書きできる)fopen版のプログラムを読み書き標準入出力に変更するには、「fin=stdin;fout=stdout」という値を付けるだけです.fopen(「con」「r」)の方法で標準入出力を開くことを試した読者がいるかもしれませんが、この方法は移植可能ではありません.linuxでは無効です
#include 
#include 
#include
#include
#pragma warning(disable:4996)
using namespace std;
int  main() {

    
    FILE  *fin, *fout;
    fin = fopen("datain.txt", "r+");
    fout = fopen("dataout.txt", "w+");
    int x, n = 0; int s = 0; int avl = 0;
    while (fscanf(fin, "%d", &x) == 1)
    {
        s += x;
        n++;
    }

    avl = s / n;
    fprintf(fout,"%d %d
",s,avl); fclose(fin); fclose(fout); return 0; }

以上のコードエラーの主な原因はdatainがないことにある.txt dataout.txtはプロジェクトディレクトリに置く~以上使用可能なC:windowssystem 32datain.txt;