第2回 mixC Code Golf 結果報告

アバター
あーる@Reputeless
記事: 84
登録日時: 15年前
住所: 千葉

第2回 mixC Code Golf 結果報告

投稿記事 by あーる@Reputeless » 14年前

#第2回 [Max]#

[問題]
標準入力から2つの整数を受け取り、その大きいほうの値を表示する

[入力 |例1]
123 456

[出力 |例1]
456

[入力 |例2]
0 -987

[出力 |例2]
0

[入力 |例3]
555 555

[出力 |例3]
555

[期間]
10/21(木)00:00 ~ 10/24(日)17:59

                          
=結果=

投稿数 7件(7人)

1位 (52B)
Justy さん
ideyan さん

3位(53B)
roxion1377 さん
ゆーずぃ さん
Cir さん

*1位1番乗り
Justy さん

*1位のコード
a;main(b){scanf("%d%d",&a,&b);printf("%d",a>b?a:b);}

                          
★解説

今回のポイントは次の2つです。

変数は、グローバルと、main の仮引数に
グローバルで変数を宣言すると、型修飾子 int を省略できます。
また、変数の1つを main の仮引数にしたかどうかで、1位と3位の間に 1B の差が生じました。

a;main(b){scanf("%d%d",&a,&b);printf("%d",a>b?a:b);}

a,b;main(){scanf("%d%d",&a,&b);printf("%d",a>b?a:b);}

ちなみにですが、グローバル変数は 0 で初期化されるということを覚えておくと、何かと役に立つかもしれません。

if ではなく 条件演算子 ?: を使う
条件演算子を使うと、if 文を使う条件処理をコンパクトに記述できます。
また、式の値を結果とするので、値を返す関数のような使いかたができます。

                          

興味が出てきたら、コミュニティ「Code Golf を楽しもう」まで!
初心者の方でも楽しめる問題を用意しています!
http://dixq.net/mixC/community/11

-
最後に編集したユーザー あーる@Reputeless on 2010年10月30日(土) 01:09 [ 編集 1 回目 ]

アバター
Ciel
記事: 252
登録日時: 15年前

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by Ciel » 14年前

おもしろそうですね^^
コミュニティ参加させていただきました。

時間があったら次の問題チャレンジしてみますね^^

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

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by xxx » 14年前

1B差か・・・
仮引数にできたとは知らなかった

とても勉強になりました

アバター
MNS
記事: 35
登録日時: 15年前

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by MNS » 14年前

なんと、高尚な競い合いですね…。
私も機会があれば参加してみようと思います。

アバター
あーる@Reputeless
記事: 84
登録日時: 15年前
住所: 千葉

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by あーる@Reputeless » 14年前

> Ciel さん
コミュ参加ありがとうございます。
観戦&参戦お楽しみください。

> roxion1377 さん
僕もいつも勉強になってます。

> MNS さん
コンパイラの警告をことごとく無視する粗暴な戦いでございます。

アバター
tana
記事: 33
登録日時: 15年前

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by tana » 14年前

>>グローバルで変数を宣言すると、型修飾子 int を省略できます。
これはためになりますね。
今度から気を付けて見たいと思います。

アバター
Justy
副管理人
記事: 122
登録日時: 15年前

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by Justy » 14年前

>if ではなく 条件演算子 ?: を使
 で思い出しましたが、

CODE:

a;main(b){scanf("%d%d",&a,&b);printf("%d",a>b?:b);}
とすればもう1バイト削れますね。

アバター
あーる@Reputeless
記事: 84
登録日時: 15年前
住所: 千葉

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by あーる@Reputeless » 14年前

> tana さん
いろいろなテクニックを覚えて、ずるがしこくなってください!

> Justy さん
おぉ!そうですね。
gcc でコンパイルできる特別な文法には、Code Golf に便利なものが、ちょっとだけ含まれています。

よく使われるのが、条件演算子 ?: で
a ? : b

a ? a : b
と同等になるというものです。

こういった gcc の機能について、次回の日記で紹介してみたいです。

詳しく知りたい方はこちらが参考になると思います。
http://bit.ly/gccExtensions

アバター
ideyan
記事: 2
登録日時: 15年前

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by ideyan » 14年前

今回の問題で
a>b?:b;
を使ったら
a>b?a>b:b;
になって正常に動かなくなるのでは?

アバター
Justy
副管理人
記事: 122
登録日時: 15年前

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by Justy » 14年前

あ、たしかにダメですね。
ちょっと勘違いしていたようです。

アバター
あーる@Reputeless
記事: 84
登録日時: 15年前
住所: 千葉

Re: 第2回 mixC Code Golf 結果報告

投稿記事 by あーる@Reputeless » 14年前

> ideyan さん
> Justy さん
ご指摘ありがとうございます。
首位同士の熱戦、胸が熱くなりますな。