回答編集履歴

10 最後の修正でロジック部分が元に戻ってしまっていたので修正。max = iが1回だけの記述になるよう修正

mariuskoiwa

mariuskoiwa score 25

2019/11/24 12:09  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   /* 30000文字以上のファイルが無い前提で書いてます */
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       int i = atoi(t);
       if(first == 1){
           max = i;  
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }
       ptr = strtok(NULL, ",");
       max = i;
       ptr = strtok(NULL, " ");
   }
   if(increasing == 1){
       printf("%s: increasing\n", argv[1]);
   }else{
       printf("%s: not increasing\n", argv[1]);
   }
}
```
9 Cだとコンパイラが1行コメントに非対応かもしれないので修正

mariuskoiwa

mariuskoiwa score 25

2019/11/24 12:03  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char buffer[30001];   /* 30000文字以上のファイルが無い前提で書いてます */
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }
       ptr = strtok(NULL, ",");
   }
   if(increasing == 1){
       printf("%s: increasing\n", argv[1]);
   }else{
       printf("%s: not increasing\n", argv[1]);
   }
}
```
8 改行文字の心配は余計だと思ったので削除

mariuskoiwa

mariuskoiwa score 25

2019/11/24 12:01  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       if(t[0] == '\n'){
           int i = atoi(t);
           if(first == 1){
               max = i;
               first = 0;
           }else if(i < max){
               increasing = 0;
               break;
           }
       int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }
       ptr = strtok(NULL, ",");
   }
   if(increasing == 1){
       printf("%s: increasing\n", argv[1]);
   }else{
       printf("%s: not increasing\n", argv[1]);
   }
}
```
7 改行文字が入ってしまっていても大丈夫なように修正(多分余計)

mariuskoiwa

mariuskoiwa score 25

2019/11/24 12:00  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       if(t[0] == "\n"){
       if(t[0] == '\n'){
           int i = atoi(t);
           if(first == 1){
               max = i;
               first = 0;
           }else if(i < max){
               increasing = 0;
               break;
           }
       }
       ptr = strtok(NULL, ",");
   }
   if(increasing == 1){
       printf("%s: increasing\n", argv[1]);
   }else{
       printf("%s: not increasing\n", argv[1]);
   }
}
```
6 ファイル名の出力が抜けていたので直しました

mariuskoiwa

mariuskoiwa score 25

2019/11/24 11:56  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
      int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }else{
           max = i;
      if(t[0] == "\n"){
           int i = atoi(t);
           if(first == 1){
              max = i;
              first = 0;
           }else if(i < max){
              increasing = 0;
              break;
           }
       }
       t = strtok(NULL, " ");
       ptr = strtok(NULL, ",");
   }
   if(increasing == 1){
       printf("increasing\n");
       printf("%s: increasing\n", argv[1]);
   }else{
       printf("not increasing\n");
       printf("%s: not increasing\n", argv[1]);
   }
}
```
5 バグ修正2

mariuskoiwa

mariuskoiwa score 25

2019/11/24 11:45  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }else{  
           max = i;  
       }
       t = strtok(NULL, " ");
   }
   if(increasing == 1){
       printf("increasing\n");
   }else{
       printf("not increasing\n");
   }
}
```
4 バグ修正

mariuskoiwa

mariuskoiwa score 25

2019/11/24 11:42  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }
       t = strtok(NULL, ",");
       t = strtok(NULL, " ");
   }
   if(increasing == 1){
       printf("increasing\n");
   }else{
       printf("not increasing\n");
   }
}
```
3 書き間違えの修正(2)

mariuskoiwa

mariuskoiwa score 25

2019/11/24 11:38  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }
       t = strtok(NULL, ",");
   }
   if(increasing == 1){
       printf("increasing\n");
   }else{
       puts("not increasing\n");
       printf("not increasing\n");
   }
}
```
2 書き間違いを修正

mariuskoiwa

mariuskoiwa score 25

2019/11/24 11:37  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
   int increasing = 1;
   int first = 1;
   int max;
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char * t = NULL;
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }
       ptr = strtok(NULL, ",");
       t = strtok(NULL, ",");
   }
   if(increasing == 1){
       printf("increasing\n");
   }else{
       puts("not increasing\n");
   }
}
```
1 インデントを直しました

mariuskoiwa

mariuskoiwa score 25

2019/11/24 11:35  投稿

こんな感じでどうでしょうか
```ここに言語を入力
{
      int increasing = 1;
      int first = 1;
      int max;
   int increasing = 1;
   int first = 1;
   int max;
       char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
       char * t = NULL;
       
       if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
           printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
       buffer[sizeof(buffer) -1] = '¥0';
       
   t = strtok(buffer, " ");
   while(t != NULL) {
       int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }
       ptr = strtok(NULL, ",");
   }
   char buffer[30001];   // 30000文字以上のファイルが無い前提で書いてます
   char * t = NULL;
   if(increasing == 1){
       printf("increasing\n");
   }else{
       puts("not increasing\n");
   }
   if(NULL == fgets(buffer, sizeof(buffer) - 1, f)){
       printf("%s: can't reed.\n",argv[1]); exit(-1);
   }
   buffer[sizeof(buffer) -1] = '¥0';
   t = strtok(buffer, " ");
   while(t != NULL) {
       int i = atoi(t);
       if(first == 1){
           max = i;
           first = 0;
       }else if(i < max){
           increasing = 0;
           break;
       }
       ptr = strtok(NULL, ",");
   }
   if(increasing == 1){
       printf("increasing\n");
   }else{
       puts("not increasing\n");
   }
}
 
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る