タグ付けされた質問 「c」

この課題はC言語に関連しています。回答が特定の言語であることが必要な課題は、一般的に推奨されないことに注意してください。

30
Cでのゴルフのヒント
Cでゴルフをするための一般的なヒントは何ですか?私は、少なくともCに特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。回答ごとに1つのヒントを投稿してください。また、ヒントがC89および/またはC99に適用される場合、および特定のコンパイラでのみ機能する場合も含めてください。
137 code-golf  tips  c 

30
(x == x + 2)はいつですか?[閉まっている]
課題:x式(x == x+2)が真と評価されるような方法で定義します。 質問にCのタグを付けましたが、創造的であるか、言語の興味深い側面を強調している限り、他の言語での回答も歓迎します。 Cのソリューションを受け入れるつもりですが、他の言語でも投票できます。 正しい-標準に準拠した実装で動作します。例外-基本型の実装を想定し、それが一般的な実装である場合(たとえば、int32ビット2の補数であると想定する)は問題ありません。 シンプル-小さく、基本的な言語機能を使用する必要があります。 興味深い-主観的だと認めます。私が面白いと思うもののいくつかの例がありますが、私はヒントを与えたくありません。更新:プリプロセッサを避けることは興味深いです。 クイック-最初の良い回答が受け入れられます。 60の回答を得た後(そのような参加を期待していませんでした)、それらを要約するのは良いかもしれません。 60の回答は7つのグループに分けられ、そのうち3つはCで実装でき、残りは他の言語で実装できます。 Cプリプロセッサ。#define x 2|0提案されましたが、他の多くの可能性があります。 浮動小数点。大きな数、無限大またはNaNはすべて機能します。 ポインター演算。巨大な構造体へのポインタにより、2を追加してラップアラウンドします。 残りはCでは機能しません。 演算子のオーバーロード- +追加しない、または==常にtrueを返す A。 作成x(一部の言語はせずに、それを許可する関数呼び出しをx()構文)。その後、毎回何か他のものを返すことができます。 1ビットのデータ型。その後x == x+2 (mod 2)。 変更2-一部の言語では、それに割り当てること0ができます。
90 math  arithmetic  c 

12
C変数宣言を読み取る
バックグラウンド Cの変数宣言ステートメントは、変数の名前、そのベース型、および型修飾子の3つの部分で構成されています。 タイプ修飾子には次の3種類があります。 ポインター*(プレフィックス) 配列[N](後置) 関数()(後置) 括弧内に関数引数のリストを指定できますが、この課題のために、それを無視して使用します()(技術的には「関数は任意の種類の引数を取ることができます」)。 また、表記を読み取る方法は次のとおりです。 int i; // i is an int float *f; // f is a pointer to a float my_struct_t s[10]; // s is an array of 10 my_struct_t int func(); // func is a function returning an int キャッチは、私たちのようなより複雑なタイプ、形成するために、これらのすべてを混在させることができるということである配列の配列や関数ポインタの配列やポインタの配列へのポインタを: int arr[3][4]; // arr …
41 code-golf  parsing  c  syntax 

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

22
基本的なASCIIタリー
代替タイトル:壁にあなたの刑務所の文を集計します numberを指定するとn、出力はグループごとに従来の5に、行ごとに50にグループ化されます。 例 1 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| |/|| |/|| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

25
C配列を展開する
Cプログラミング言語では、配列は次のように定義されます。 int foo[] = {4, 8, 15, 16, 23, 42}; //Foo implicitly has a size of 6 配列のサイズは、初期化要素(この場合は6)から推測されます。この方法でC配列を記述し、明示的にサイズを変更してから各要素を順番に定義することもできます。 int foo[6]; //Give the array an explicit size of 6 foo[0] = 4; foo[1] = 8; foo[2] = 15; foo[3] = 16; foo[4] = 23; foo[5] = 42; チャレンジ 最初の方法から2番目の方法に配列を拡張するプログラムまたは関数を作成する必要があります。コードを長くするプログラムを作成していて、皮肉が大好きなので、コードをできるだけ短くする必要があります。 入力は元の配列を表す文字列になり、出力は拡張された配列定義になります。入力は常に次のように見えると安全に仮定できます。 <type> …
36 code-golf  string  parsing  c 

18
回転対称性のある数
整数、出力所与truthyのそれは同じ逆さまである場合、値または(180°回転)falsyそうでない場合、値を。 0、1、及び8回転対称性を持っています。6となり9、逆もまた同様です。 真実の結果を生み出す一連の数字:OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

6
C / C ++ポリグロットを書く
このチャレンジのコンセプトは非常にシンプルです。あなたがしなければならないのは、有効なCと有効なC ++の両方としてコンパイルするプログラムを書くことです!まあ、いくつかのキャッチがあります。プログラムは、各言語でコンパイルされたときに異なる動作をする必要があります。「異なる動作」と見なされるためには、プログラムは言語ごとに異なる出力を持っている必要があります。 ルール プログラムは有効なCとC ++の両方である必要があります プログラムには、コンパイルされた言語に基づいて異なる出力が必要です。 #ifdef __cplusplusまたはその他の「簡単な」プリプロセッサトリックは推奨されません。(ただし、他のプリプロセッサ操作はまったく問題ありません。) プログラムが何か異なることをすることを完全に明白に見せないようにしてください。 これは人気コンテストであるため、最も興味深く驚くべきソリューションを持っている人が勝者となります。楽しむ! 例: 私は自分のプログラムを作成して、これが#ifdefトリックを実行することでさえ可能かどうかを確認しました。 #include <stdio.h> #include <string.h> char *m="C++ rules!"; int t[11]={0,0,0,0,1,-1,-3,9,-8,82,0}; char tr(char c,int i) { return c+((sizeof('!')+1)&1)*t[i]; } int main() { int i = 0; for(;i<strlen(m);i++) { printf("%c",tr(m[i],i)); } printf("\n"); return 0; } このプログラムC++ rules!は、C ++およびCでコンパイルされたときに出力C++ stinksされます。 説明: 言語間の違いを引き起こすのはtr()関数です。CとC …


3
簡易カーニングを実装する
前書き カーニングとは、テキストの文字間の間隔を調整することを意味します。例として、Top次の3つのグリフで書かれた単語を考えます。 ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... グリフ間のギャップをドットで埋めて完了させることもできますが、ギャップはどうやら広すぎるように見えます。代わりに、グリフを左にスライドさせて、ほとんど触れないようにします。 #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... これはずっと良く見える!のバーがTの左の境界線の上にあることに注意してくださいo。この課題では、このような長方形のグリフに簡単なカーニングプログラムを実装することがタスクです。 カーニングプロセス 二長方形の2次元文字配列考える.と#同じ形状を。単純なカーニングプロセスでは、最初に1列の.sを挟んで配列を並べて配置します。次に、#右と左の配列のいくつか#が直交または斜めに隣接するまで、右の配列のそれぞれを左に1ステップ移動します。カーニングの結果は、隣接するを導入する前のステップ#です。あなたの仕事は、このプロセスを実装することです。 例を見てみましょう: Inputs: ..### #.... #.... ..##. ...#. ...## ..### ....# Process: ..###....#. …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

4
Cで2つの数字を安全に追加します
Cは素敵で安全な高レベルのプログラミング言語であることは誰もが知っています。ただし、コーダーとして次のタスクを設定します。 2つの数値を追加するプログラムを作成します。 入力:スペースで区切られた2つの整数。 出力:入力内の2つの数値の合計。 ひねりは、コードが100%安全でなければならないということです。言い換えれば、入力が何であっても適切に動作する必要があります。入力が実際に2つのスペースで区切られた整数で、両方とも100桁未満の場合、合計を出力する必要があります。それ以外の場合は、エラーメッセージを出力して安全に終了する必要があります。 結局のところどれほど難しいのでしょうか? 一般的な称賛は、他の人の答えを破る病理学的入力ケースに与えられます:) コードは、ubuntuでgcc -Wall -Wextraを使用して警告なしでコンパイルする必要があります。 明確化。 入力は標準入力からです。 水平方向の空白は単一のスペース文字のみです。最初の数字の前に何もなければならず、入力は改行+ EOFまたはEOFのみで終了する必要があります。 Augmented Backus-Naur Formで指定される唯一の有効な入力は次のとおりです。 NONZERODIGIT = "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" POSITIVENUMBER = NONZERODIGIT * 98DIGIT NEGATIVENUMBER = "-" POSITIVENUMBER NUMBER = NEGATIVENUMBER / POSITIVENUMBER …
24 code-golf  c 

6
最も美しいバイトビート構成を書く
Bytebeatは、出力がaplayまたはにパイプされる単純なCプログラムを作成することで作成できる音楽のスタイルです/dev/dsp。 main(t){for(;;t++)putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7);} このスレッドには、バイトビートサイト、javascript実装、およびデモとサンプル構成に関する情報が豊富にあります。 非常に単純なルール:かなり響きのある構成を作成してください。通常の結果を考慮すると主観的ではありませんが、それは明らかに主観的であるため、ほとんどの賛成票が勝ちます。

10
最短の一意に識別する部分文字列
文字列のリストが与えられたら、各文字列を、空でない部分文字列の1つで置き換えます。これは、リスト内の他の文字列の部分文字列ではなく、できるだけ短くします。 例 リストを考えると["hello","hallo","hola"]、"hello"ただで置き換える必要があり"e"、この部分文字列がに含まれていないとして、"hallo"そして"hola"、それはできるだけ短くしています。"hallo"いずれかで置き換えることができる"ha"か、"al"と"hola"のいずれかによって"ho"、"ol"または"la"。 ルール 文字列は空ではなく、同じ大文字と小文字のアルファベットのみを含むと想定できます。 このような部分文字列はリスト内の各文字列に存在すると仮定できます。つまり、リスト内の文字列は他の文字列の部分文字列にはなりません。 入力と出力は任意の合理的な形式にすることができます。 これはcode-golfなので、選択した言語でできるだけ少ないバイトを使用するようにしてください。 テストケース ほとんどの場合、可能な出力は1つだけです。 ["ppcg"] -> ["p"] (or ["c"] or ["g"]) ["hello","hallo","hola"] -> ["e","ha","ho"] ["abc","bca","bac"] -> ["ab","ca","ba"] ["abc","abd","dbc"] -> ["abc","bd","db"] ["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"] ["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"] 関連:最短識別サブストリング -同様のアイデアですが、より複雑なルールと扱いにくい形式です。
23 code-golf  string  code-golf  string  code-golf  array-manipulation  code-golf  quine  code-golf  array-manipulation  integer  matrix  classification  code-golf  quine  code-golf  string  matrix  conversion  code-golf  string  number  code-golf  string  code-golf  number  sequence  integer  code-golf  decision-problem  matrix  code-golf  string  code-golf  math  code-golf  math  array-manipulation  combinatorics  code-golf  random  code-golf  code-golf  alphabet  code-golf  python  c  code-golf  base-conversion  code-golf  string  counting  code-challenge  code-generation  fastest-code  code-golf  kolmogorov-complexity  matrix  code-golf  string  code-golf  array-manipulation  decision-problem  random  sudoku  code-golf  chess  code-golf  card-games  encode  code-golf  decision-problem  code-golf  code-golf  math  array-manipulation  matrix 

20
ジミーこれらの配列
同僚のジミーは、C / C ++の初心者です。彼は一種の遅い学習者でもあります。公平を期すために、彼のコードは常にコンパイルされますが、彼は本当にずさんな習慣を持っています。たとえば、次のように配列を定義できることは誰もが知っています。 int spam[] = {4, 8, 15, 16, 23, 42}; それは、ジミーを除く全員です。彼は、配列を作成する唯一の方法は次のようであると確信しています。 int spam[6]; spam[0] = 4; spam[1] = 8; spam[2] = 15; spam[3] = 16; spam[4] = 23; spam[5] = 42; 私はコードレビューで彼のためにこれを修正し続けていますが、彼は学びません。そのため、彼がコミットしたときに自動的にこれを行うツールを作成する必要があります¹。 チャレンジ 完全なプログラムか、入力として複数行の文字列を取り込んで、よりコンパクトなバージョンのC配列を出力する関数のいずれかを作成してほしい。入力は常に空白を含むこの形式に従います。 identifier_one identifier_two[some_length]; identifier_two[0] = some_number; identifier_two[1] = some_number; identifier_two[2] = some_number; ... identifier_two[some_length …
23 code-golf  string  parsing  c 

5
ハードオブジェクトまたはソフトオブジェクトはもっとありますか
What-Ifブックのオープニングに触発されました。 入力は、文字列、文字列のリストなどとしてのスペースの長方形で、#内部にで作成されたオブジェクトがあります。 ######## # # ######## ### #### ### #### ### オブジェクトは常に交差せず、触れない長方形になります。ソフトオブジェクトは#、中央がで埋められておらず、境界のみであるオブジェクトとして定義されます。ハードオブジェクトは、塗りつぶされたオブジェクトです。幅または高さのあるオブジェクト<=2はハードと見なされます。すべてのオブジェクトはハードまたはソフトです。 入力にさらに硬いオブジェクトがある"Hard"場合、output 、より柔らかい場合、output "Soft"、それらが等しい場合、output "Equal"。 これはcode-golfなので、バイト単位の最短コードが勝ちです! テストケース これらのケースは完全な入力ではなく、各オブジェクトを特徴付けるべきものです。実際の入力は、質問の上部にあるascii-artのようになります。 ハード # #### ## ## ########## ########## ########## 柔らかい ### # # ### ################### # # # # # # ################### #### # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.