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

回答編集履歴

2

コード変更

2020/08/02 08:46

投稿

Popinpon
Popinpon

スコア0

answer CHANGED
@@ -1,6 +1,22 @@
1
- すいませんテストするコードが間違ってますね。書き込む回数が減っていたので単純に書き込む文字も減っているからですね。buf以上のときは毎回書き込む文字数は同じなので
1
+ すいませんテストするコードが間違ってますね。書き込む回数が減っていたので単純に書き込む文字も減っているからですね。buf以上のときは毎回書き込む文字数は同じなので書き換えました。
2
2
  ```C言語
3
+ #include <stdio.h>
4
+ #include <unistd.h>
5
+ #include <stdlib.h>
6
+ char buf[] = "aaaaaaaaaa";
7
+ main(int argc, char **argv)
8
+ {
9
+ int size, n, i,count;
10
+ if (argc < 3)
11
+ return 1;
12
+ size =(int) atof(argv[1]);
13
+ count=n = atoi(argv[2]);
3
- if (n > sizeof(buf))
14
+ if (count >= sizeof(buf))
4
- n=sizeof(buf);
15
+ n=sizeof(buf)-1;
16
+
17
+ for (i = 0; i < size; i += n)
18
+ write(1,buf,count);
19
+ return 0;
20
+ }
5
21
  ```
6
- れを追加すると実行時間が伸びました。
22
+ のコードに変更すると文字数より大きいと実行時間が伸びました。

1

コード加筆

2020/08/02 08:46

投稿

Popinpon
Popinpon

スコア0

answer CHANGED
@@ -1,1 +1,6 @@
1
- すいませんテストするコードが間違ってますね。書き込む回数が減っていたので単純に書き込む文字も減っているからですね。
1
+ すいませんテストするコードが間違ってますね。書き込む回数が減っていたので単純に書き込む文字も減っているからですね。buf以上のときは毎回書き込む文字数は同じなので
2
+ ```C言語
3
+ if (n > sizeof(buf))
4
+ n=sizeof(buf);
5
+ ```
6
+ これを追加すると実行時間が伸びました。