[Problem D] ぐらぐら 一般に n 個の物体があり i 番目の物体の重心の x 座標を x i, 重さを w i とすると 全体の n 重心の x 座標と重さ w は x = ( x w ) / w, w = w となる i= 1 i i n i= 1 i 良さそうな方法は思いつかなかった
|
|
|
- あけなお つねざき
- 6 years ago
- Views:
Transcription
1 [Problem D] ぐらぐら 一般に n 個の物体があり 番目の物体の重心の x 座標を x, 重さを w とすると 全体の n 重心の x 座標と重さ w は x = ( x w ) / w, w = w となる = n = 良さそうな方法は思いつかなかった アイデア募集中!!! ので 少し強引に解いている 入力データの読み込みは w と h を scanf で読み込み getchar でその行の行末コードを読み込み ピースのデータは fgets で char 型の2 次元配列に読み込んでいる 不要かもしれないが 各ピースにユニークなピース番号をふっておいた方が後の処理での混乱が少なくなると思われるので 別途整数型の2 次元配列を用意し そこにユニークなピース番号をふっている 各ピースごとに ) そのピースを構成する4つのブロックの座標 2) 自分の下側に接しているピースの番号 3) 下側に接している面の最左 x 座標と最右 x 座標 4) 上側に接しているピース ( 本ピースが直接支えているピース ) の個数 ( 最大で4) 5) 上側に接しているピースの番号 6) 自分自身を含めて支えているピース全体の重量と重心の x 座標を求めている 各ピースの支えあう状態は 地面に接しているピースを根とする木構造で表現できる ( と問題に書かれている ) ので 各ピースに対して )~5) を求めることにより木構造を表現する 次に 地面に接しているピース ( 木構造の根 ) から post order の深さ優先探索で 6) を求めていく 各ピースにおいて 6) が求まった時点で 重心の x 座標が 3) で求めた最左 x 座標と最右 x 座標の間に入っているかをチェックし 入っていなければ UNSTABLE と判定する 途中で UNSTABLE と判定されることなく根節点に辿り着き 根節点も UNSTABLE でなければ STABLE と判定する プログラム例 // ACM-ICPC 200 Japan Onlne Contest Problem D // // ファイル名 : pd.c // コンパイル方法 : cc pd.c // 実行方法 :./a.out < D0 > D0.result など // チェック方法 : dff D0.ans D0.result など
2 // // アルゴリズム概要 //. 各ブロックにユニークなピース番号をふる // 2. 各ピースに属しているブロックとそれらに隣接しているブロックを調べ // 下側のピース番号と下側ピースに接している最左 最右 x 座標 // 上側のピース ( 本ピースが支えているピース ) の個数とそれらのピース番号 // を求める // 3. 地面に接しているピースから post order で 各ピースが支える全重量 重心位置を // を求め 安定性をチェックする 不安定なものが見つかれば 不安定 // 全てが安定なら 安定 と判定 #nclude <stdo.h> #defne WMAX 0 // 幅 w の最大値 #defne HMAX 60 // 高さ h の最大値 #defne PMAX (WMAX*HMAX/4) // ピースの個数の最大値 struct pece_t nt xpos[4]; // ピースを構成するブロックの x 座標 nt ypos[4]; // ピースを構成するブロックの x 座標 nt down; // 下側のピース番号 nt xl; // 下側ピースに接している面の最左 x 座標 nt xr; // 下側ピースに接している面の最右 x 座標 nt nup; // 上側のピース ( 本ピースが支えているピース ) の個数 nt up[4]; // 上側のピース ( 本ピースが支えているピース ) 番号 nt weght; // 自分自身を含め支えているピース全体の重量 double xcg; // 自分自身を含め支えているピース全体の重心の x 座標 ; nt w,h; char map[hmax][wmax+2]; // 入力データを文字列で記憶する配列 nt pnum[hmax][wmax]; // ピース番号を覚える配列 struct pece_t pdata[pmax]; // 各ピースのデータを格納する配列 nt np; // ピースの個数 // 隣接位置のオフセット ( 右 上 左 下 ) nt dx[] =, 0, -, 0; nt dy[] = 0,, 0, -; // 深さ優先探索により安定性をチェックし 安定なら0 不安定ならを返す nt dfs(nt pn) nt ; nt tw; double cg; tw = 0; cg = 0; for(=0; < pdata[pn-].nup; ++) // 自分が支えている各ピースに対し f(dfs(pdata[pn-].up[])) return ; // それが不安定なら 不安定 と判定 // 安定な場合は その重みと重心計算のためのモーメントを足し込む tw += pdata[pdata[pn-].up[]-].weght; cg += pdata[pdata[pn-].up[]-].weght * pdata[pdata[pn-].up[]-].xcg; for(=0; <4; ++) // このピースを構成する各ブロックに対して cg += pdata[pn-].xpos[]+0.5; // ブロックのモーメントを足し込む tw += 4; // ブロックは4 個なので 重みとして4を足す pdata[pn-].weght = tw; // このピースが支えている重み ( 自分自身も含む ) 2
3 pdata[pn-].xcg = cg/tw; // このピースが支えている重みの重心の x 座標 // 重心位置が下側面の最左位置以下あるいは最右位置以上ならば不安定 f(pdata[pn-].xcg <= pdata[pn-].xl pdata[pn-].xcg >= pdata[pn-].xr) return ; // 不安定 return 0; // 安定 // ピースに関する情報を作成 vod gen_pdata() nt,j,k; nt x, y; for(=0; <np; ++) // 各ピースに対して情報をゲット pdata[].xl = w+; // 下のピースに接する最左 x 座標 pdata[].xr = -; // 下のピースに接する最右 x 座標 pdata[].nup = 0; // 上のピースの個数 for(j=0; j<4; j++) // このピースの各ブロックについて調べる x = pdata[].xpos[j]; // ブロックの x 座標 y = pdata[].ypos[j]; // ブロックの y 座標 f(y>0) // 地面には接していない場合 f(pnum[y-][x]!=0 && pnum[y-][x]!= +) // 自分と異なるピースのブロックが下にあるケース f(x < pdata[].xl) pdata[].xl = x; // より左にあれば最左 x 座標を更新 f(x+ > pdata[].xr) pdata[].xr = x+; // より右にあれば最右 x 座標を更新 pdata[].down = pnum[y-][x]; // 下にあるピースの番号をセット else // y == 0 すなわち地面に接している f(x < pdata[].xl) pdata[].xl = x; // より左にあれば最左 x 座標を更新 f(x+ > pdata[].xr) pdata[].xr = x+; // より右にあれば最右 x 座標を更新 pdata[].down = 0; // 下にあるピースの番号として0( 地面 ) をセット f(y < h-) // 最も上の場所ではない ( この上に他のピースがある可能性有り ) f(pnum[y+][x] >= && pnum[y+][x]!= +) // 自分と異なるピースのブロックが上にあるケース nt match = 0; for(k=0; k<pdata[].nup; k++) // そのピースが登録されているかチェック f(pdata[].up[k] == pnum[y+][x]) // 既に登録されている match = ; // 既登録であることを示すフラグ break; f(match == 0) // まだ登録されていなかったので pdata[].up[pdata[].nup++] = pnum[y+][x]; // 登録する // ピースを見つけユニークなピース番号を振る vod fnd_peces() 3
4 nt x, y; char myx; nt qf, qr; np = 0; // ピースの個数を0に初期化 for(y=0; y<h; y++) for(x=0; x<w; x++) pnum[y][x] = 0; // ピース番号を格納する配列を初期化 for(y=0; y<h; y++) for(x=0; x<w; x++) myx = map[y][x]; f(myx == '.') contnue; // (x,y) にブロックは無い f(pnum[y][x] > 0) contnue; // (x,y) のブロックにはピース番号が振られている np++; // 新しいピースが見つかったのでピースの個数を 個増やし pnum[y][x] = np; // そのブロックのピース番号とする pdata[np-].xpos[0] = x; // そのピースの0 番目のブロックの x 座標をセット pdata[np-].ypos[0] = y; // そのピースの0 番目のブロックの y 座標をセット qf=0; qr=; whle(qr<4) // そのピースを構成する残り3つのブロックを見つける nt xx, yy, nx, ny, d; xx = pdata[np-].xpos[qf]; // qf 番目のブロック yy = pdata[np-].ypos[qf]; qf++; for(d=0; d<4; d++) // そのブロックに隣接する4つのブロックを調べる nx = xx + dx[d]; // 隣接位置の座標 ny = yy + dy[d]; f(map[ny][nx]=='.') contnue; // その場所にブロックは無い f(pnum[ny][nx] > 0) contnue; // 既にピース番号が決まっている f(map[ny][nx]!= myx) contnue; // 今のピースとは異なる pdata[np-].xpos[qr] = nx; // このブロックはこのピースに属する pdata[np-].ypos[qr] = ny; pnum[ny][nx] = np; qr++; nt man() char lne[wmax+]; // ブロックデータを読み込むための配列 nt x, y, val; whle() scanf("%d %d", &w, &h); // w と h の入力 f(w==0 && h==0) break; // 両方 0 なら終了 getchar(); // w と h の行の行末の ' n' を読みとばす for(y=h-; y>=0; y--) fgets(map[y],wmax+2,stdn); // 行分のデータを文字列として読み込む fnd_peces(); // ピースを見つけユニークなピース番号を振る gen_pdata(); // ピース間の上下関係より木構造を構築 f(dfs()) // post order の深さ優先探索で安定性を判定 prntf("unstable n"); // dfs がを返せば不安定 else prntf("stable n"); // dfs が0を返せば安定 4
5 5
Microsoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
プログラミング基礎
C プログラミング Ⅱ 演習 2-1(a) BMI による判定 文字列, 身長 height(double 型 ), 体重 weight (double 型 ) をメンバとする構造体 Data を定義し, それぞれのメンバの値をキーボードから入力した後, BMI を計算するプログラムを作成しなさい BMI の計算は関数化すること ( ) [ ] [ ] [ ] BMI = 体重 kg 身長 m 身長
Microsoft Word - no15.docx
7. ファイルいままでは プログラムを実行したとき その結果を画面で確認していました 簡単なものならそれでもいいのですか 複雑な結果は画面で見るだけでなく ファイルに保存できればよいでしょう ここでは このファイルについて説明します 使う関数のプロトタイプは次のとおりです FILE *fopen(const char *filename, const char *mode); ファイルを読み書きできるようにする
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき
Taro-ビット処理(公開版).jtd
0. 目次 1. ビット演算 1. 1 論理積 論理和 排他的論理和 1. 2 左シフト 右シフト 2. ビット列操作 2. 1 char 型変数の表示 2. 2 int 型変数の表示 2. 3 int 型変数のビット数 2. 4 ビット単位の設定 3. 課題 3. 1 文字の詰め込みと取り出し 3. 2 ビット反転 3. 3 巡回シフト - 1 - 1. ビット演算 つぎのビット演算を使って ビット単位の処理ができる
データ構造
アルゴリズム及び実習 7 馬青 1 表探索 定義表探索とは 表の形で格納されているデータの中から条件に合ったデータを取り出してくる操作である 但し 表は配列 ( 連結 ) リストなどで実現できるので 以降 表 の代わりに直接 配列 や リスト などの表現を用いる場合が多い 表探索をただ 探索 と呼ぶ場合が多い 用語レコード : 表の中にある個々のデータをレコード (record) と呼ぶ フィールド
Taro-ファイル処理(公開版).jtd
ファイル処理 0. 目次 1. はじめに 2. ファイル内容の表示 3. ファイル内容の複写 3. 1 文字単位 3. 2 行単位 4. 書式付き入出力 5. 文字配列への入出力 6. 課題 6. 1 課題 1 ( ファイル圧縮 復元 ) - 1 - 1. はじめに ファイル処理プログラムの形は次のようになる #include main() { FILE *fp1,*fp2; ファイルポインタの宣言
Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]
if 文 (a と b の大きい方を表示 ) C 言語 Ⅰ の復習 条件判定 (if, 条件式 ) ループ (for[ 二重まで ], while, do) 配列 ( 次元 次元 ) トレース int a, b; printf( 整数 a: ); scanf( %d, &a); printf( 整数 b: ); scanf( %d, &b); //つのif 文で表現する場合間違えやすい どっちに =
PowerPoint Presentation
工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない
PowerPoint Presentation
ファイルの入出力 芝浦工業大学情報工学科 青木義満 今回の講義内容 ファイル入出力 ファイルからのデータ読込み ファイルと配列 2 1 ファイルへのデータ書き込み ( 復習 ) ソースファイル名 :fileio1.c データをファイルに書き込み #include int main(void) { ファイルポインタ宣言 int student_id = 100; char name[
PowerPoint プレゼンテーション
プログラミング応用演習 第 2 回文字列とポインタ 先週のパズルの解説 答え : 全部 p a 1 図の書き方 : p+1 は式であって その値を格納する記憶場所を考えないので 四角で囲まない 2 p+1 同じものを表すいろいろな書き方をしてみましたが パズル以上の意味はありません プログラム中に書くときは p+1 が短くていいんじゃないかな p+1 は 2 の記憶場所 p[1] は 2 に格納されている値
Taro-2分探索木Ⅰ(公開版).jtd
2 分探索木 Ⅰ 0. 目次 1. 2 分探索木とは 2. 2 分探索木の作成 3. 2 分探索木の走査 3. 1 前走査 3. 2 中走査 3. 3 問題 問題 1 問題 2 後走査 4. 2 分探索木の表示 - 1 - 1. 2 分探索木とは 木はいくつかの節点と節点同士を結ぶ辺から構成される 2 つの節点 u,v が直接辺で結ばれているとき 一方を親節点 他方を子節点という ある節点の親節点は高々
ファイル入出力
C プログラミング Ⅱ の基礎 とは ファイルへデータを書き込んだり ( 出力 ), ファイルからデータを読み込んだり ( 入力 ) する C 言語では キーボードからの入力 画面への出力と同じようなコードで 処理を実現できる プログラム 入力 出力 ファイル 出力 入力 2 入出力の基本 ストリーム プログラム上で様々な装置への入出力を行う機構様々な入出力装置を統一的な方法で扱うことができる ハードディスクなどではファイルデータによって入出力が行われる
PowerPoint プレゼンテーション
プログラミング初級 第 7 回 2017 年 5 月 29 日 配列 ( 復習 )~ 文字列 1 配列とは 2 配列 : 複数の変数をグループとしてまとめて扱うもの 配列 変数 int data[10]; 整数型の配列 同種のデータ型を連続して確保したものを配列とよぶ = 整数がそれぞれにひとつずつ入る箱を 10 個用意したようなもの int data; 整数型の変数 = 整数がひとつ入る dataという名前の箱を用意したようなもの
<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>
C 言語講座第 2 回 作成 : ハルト 前回の復習基本的に main () の中カッコの中にプログラムを書く また 変数 ( int, float ) はC 言語では main() の中カッコの先頭で宣言する 1 画面へ出力 printf() 2 キーボードから入力 scanf() printf / scanf で整数を表示 / 入力 %d 小数を表示 / 入力 %f 3 整数を扱う int 型を使う
Taro-スタック(公開版).jtd
0. 目次 1. 1. 1 配列によるの実現 1. 2 再帰的なデータ構造によるの実現 1. 3 地図情報処理 1. 4 問題 問題 1 グラフ探索問題 - 1 - 1. は データの出し入れが一カ所で行われ 操作は追加と削除ができるデータ構造をいう 出入口 追加 削除 操作 最初 111 追加 111 222 追加 111 222 333 追加 111 222 333 444 追加 111 222
プログラミング実習I
プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 [email protected] 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.
Microsoft PowerPoint - lec10.ppt
今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ
PowerPoint プレゼンテーション
プログラミング応用演習 第 2 回文字列とポインタ 先週のパズルの解説 答え : 全部 p a 1 図の書き方 : p+1 は式であって その値を格納する記憶場所を考えないので 四角で囲まない 2 p+1 同じものを表すいろいろな書き方をしてみましたが パズル以上の意味はありません プログラム中に書くときは p+1 が短くていいんじゃないかな p+1 は 2 の記憶場所 p[1] は 2 に格納されている値
PowerPoint プレゼンテーション
シミュレーション基礎 (8) 第 6 章ファイル入出力 7.2 テキストファイルの読み書き ファイルに書き込む : EX70201: X=1:10;Y=[X;X.^2]; Fid=fopen('datal.txt', wt'); fprintf(fid,'%2d%5d n',y); C 言語と同じ手順 : ファイルをオープンするファイルに変数の値を書き込む ( 整数 2 桁, 整数 5 桁, 改行
本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 (
本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 ( 知識 4 択 :20 問 ) 1.C 言語ソースプログラムの拡張子は何か 1 c 2 obj 3 exe
PowerPoint プレゼンテーション
プログラミング応用演習 第 5 回演習 前回までのお話 ポインタ ポインタを用いた文字列処理 構造体 ファイル 再帰的構造体 リスト構造 動的メモリ管理 今日のお題 ポインタやファイルなど これまでの内容の練習 教材 以前 以下に単語を収録したファイルがあることを紹介した : /usr/share/dict/words この中からランダムに単語を取り出したファイルを用意した http://sun.ac.jp/prof/yamagu/2019app/
PowerPoint プレゼンテーション
プログラミング応用演習 第 2 回文字列とポインタ 再掲 プログラミング上達のために 何度か言っていますが 単純な方法があります : 毎日プログラムを書いていれば そのうち慣れます 中身はなんでも構いません 逆にしばらくプログラムを書かずにいると忘れます レポート以降プログラムを書いていないという人は そろそろ忘れている頃かも知れませんね 今後もプログラミングの授業があり 基礎演習の内容が前提となりますので
Microsoft PowerPoint - algo ppt [互換モード]
( 復習 ) アルゴリズムとは アルゴリズム概論 - 探索 () - アルゴリズム 問題を解くための曖昧さのない手順 与えられた問題を解くための機械的操作からなる有限の手続き 機械的操作 : 単純な演算, 代入, 比較など 安本慶一 yasumoto[at]is.naist.jp プログラムとの違い プログラムはアルゴリズムをプログラミング言語で表現したもの アルゴリズムは自然言語でも, プログラミング言語でも表現できる
Microsoft PowerPoint - prog04.ppt
プログラミング言語 2 第 04 回 (2007 年 05 月 14 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 05 月 14 日分と書いてある部分が 本日の教材です 本日の内容
Taro-cshプログラミングの応用.jt
c s h プログラミングの応用 0. 目次 1. 課題 課題 1 : 与えられたパス名からディレクトリ名とファイル名を分離し出力せよ 課題 2 : オプション (-in) の後に続く文字列とオプション (-out) の後に続く文字列をそれぞれまとめる オプションの指定がなく文字列から始まるとき -in を仮定する 課題 3 : 複数のファイルから与えられたパターンとマッチする文字列を含む行を取り出せ
Taro-数値計算の基礎Ⅱ(公開版)
0. 目次 1. 2 分法 2. はさみうち法 3. 割線法 4. 割線法 ( 2 次曲線近似 ) 5. ニュートン法 ( 接線近似 ) - 1 - 1. 2 分法 区間 [x0,x1] にある関数 f(x) の根を求める 区間 [x0,x1] を xm=(x0+x1)/2 で 2 等分し 区間 [x0,xm],[xm,x1] に分割する f(xm) の絶対値が十分小さい値 eps より小さいとき
情報処理演習 B8クラス
予定スケジュール ( 全 15 回 ) 1 1. 終了 プログラミング言語の基礎 2. 終了 演算と型 3. 終了 プログラムの流れの分岐 (if 文,switch 文など ) 4. 終了 プログラムの流れの繰返し (do, while, for 文など ) 5. 終了 中間レポート1 6. 終了 配列 7. 終了 関数 8. 終了 文字列 ( 文字列の配列, 文字列の操作 ) 9. 終了 ポインタ
cp-7. 配列
cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標
文法と言語 ー文脈自由文法とLR構文解析2ー
文法と言語ー文脈自由文法とLR 構文解析 2 ー 和田俊和資料保存場所 http://vrl.sys.wakayama-u.ac.jp/~twada/syspro/ 前回までの復習 最右導出と上昇型構文解析 最右導出を前提とした場合, 上昇型の構文解析がしばしば用いられる. 上昇型構文解析では生成規則の右辺にマッチする部分を見つけ, それを左辺の非終端記号に置き換える 還元 (reduction)
オブジェクト指向プログラミング・同演習 5月21日演習課題
オブジェクト指向プログラミング 同演習 5 月 21 日演習課題 問題 1 配列の例外処理例外が発生する可能性のある処理を try で囲み その後に catch で例外を捕捉します 例外処理の終了処理として finally が行われます これは書かなくて自動的に行われます 提出課題 1 (Kadai052301.java) 以下のプログラムは例外処理をしていない ArrayIndexOutOfBoundsException
memo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること
C プログラミング演習 1( 再 ) 4 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順
