初心者です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ボンバー晴子

初心者です

#1

投稿記事 by ボンバー晴子 » 11年前

for文の多重ループで用いて1行目(abcde)から二行目(abcd)三行目(abc)のようなプログラムのコードを教えてください

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

Re: 初心者です

#2

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

言語は何でしょうか?
とりあえずC言語で書いてみました。

コード:

a;main(b){for(b=3;b--;putchar(10))for(a=!printf("abc");a++-b;)putchar(a+99);}
ちなみに、課題の丸投げは禁止です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

かずま

Re: 初心者です

#3

投稿記事 by かずま » 11年前

「C言語何でも質問掲示板」なんだから、
言語のデフォルトは C でしょう。

C の規格では、
可変引数の関数をプロトタイプ宣言なしで呼び出すと、動作は未定義です。
すなわち、#include <stdio.h> なしに、printf を使ってはいけません。
実際、LSI-C 86 コンパイラでは動きません。

そこで、printf を使わないと、

コード:

a;main(b){for(b=3;b--;putchar(10))for(a=~2;a++-b;)putchar(a+99);}
次に、文字コードが ASCII なら 'c' == 99 (0x63) ですが、
文字コードが EBCDIC なら 'c' == 131 (0x83) です。
改行コードも異なります。
文字コードに依存しないようにするなら、

コード:

a;main(b){for(b=3;b--;puts(""))for(a=~2;a++-b;)putchar(a+'c');}
もっと短くしたいなら、

コード:

main(){for(;;)for(;;)return!puts("abcde\nabcd\nabc");}

閉鎖

“C言語何でも質問掲示板” へ戻る