teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

質問の追加

2020/08/20 23:54

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -20,4 +20,17 @@
20
20
  究極の 1行コード
21
21
  ```C
22
22
  main(){puts("1\n2\n3\n4\n\n4\n3\n2\n1");}
23
- ```
23
+ ```
24
+ **追記4**
25
+ > ソースコードの簡略化を目指しており、
26
+
27
+ お尋ねします。
28
+
29
+ ソースコードの簡略化を目指しているのなら、
30
+ なぜ `printf("%d " , i ); printf("\n" );` のように printf を 2つに分けて書くのですか?
31
+ `printf("%d\n", i);` で十分なのに。
32
+
33
+ ソースコードの簡略化を目指しているのなら、
34
+ なぜ、`for( int8_t i = -1; i > -5; i-- ) {` のように i の値を負の値にするんですか?
35
+ `for (int8_t i = 4; i > 0; i--) {` とすれば、printf も最初の forループと
36
+ 同じ形で書けるのに。

3

究極の 1行コードを追加

2020/08/20 23:54

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -15,4 +15,9 @@
15
15
  その行以外は変更しないのでしょうか? それなら、
16
16
  ```C
17
17
  printf("%d " , (5-i)/5*5+i ); //同等の式
18
+ ```
19
+ **追記3**
20
+ 究極の 1行コード
21
+ ```C
22
+ main(){puts("1\n2\n3\n4\n\n4\n3\n2\n1");}
18
23
  ```

2

同等の式

2020/08/20 14:52

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -8,4 +8,11 @@
8
8
  1行で書くなら、
9
9
  ```
10
10
  int abs(int), printf(const char *, ...); int main() { for (int i = -5; ++i < 5; printf("%d\n"+!i+!i, 5 - abs(i))); }
11
+ ```
12
+ **追記2**
13
+ > コメント分にある「同等の式」の個所を同じソースコードで記述したいのですが、
14
+
15
+ その行以外は変更しないのでしょうか? それなら、
16
+ ```C
17
+ printf("%d " , (5-i)/5*5+i ); //同等の式
11
18
  ```

1

1行のコードを追加

2020/08/20 13:15

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -3,4 +3,9 @@
3
3
  #include <stdlib.h> // abs
4
4
 
5
5
  int main() { for (int i = 5; --i > -5; printf("%d\n"+(2*!i), 5 - abs(i))); }
6
+ ```
7
+ **追記**
8
+ 1行で書くなら、
9
+ ```
10
+ int abs(int), printf(const char *, ...); int main() { for (int i = -5; ++i < 5; printf("%d\n"+!i+!i, 5 - abs(i))); }
6
11
  ```