C言語についてご質問があります。
コマンド行に整数値の列を収めたファイル名が与えられたとき、そのファイル名のファイルが昇順列を収めたものになっているかどうかを判定したい。
ここで、整数値の列が昇順列であるとは、並んでいる順にだんだんと値が大きくなる(その列の中で隣り合う2つの整数値 x, y が必ず x < y となっている)ことをいう。
昇順列であれば「increasing」
そうでなければ「not increasing」
上記のような問題を出されたので、以下のようなコードを記載したのですが、上手くいかず困っております。
おそらく、以下の部分の記載方法が悪いと思うのですが、どのように書き直したら、よいでしょうか?
a = ch;
b = ch + 1;
お忙しいところ恐縮ですが、どなたかご教示いただけますと幸いです。
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ FILE *f; f= fopen(argv[1],"r"); if( f==NULL ){ printf("%s: can't open.\n",argv[1]); return 0; } int ch; int i = 0; int a = 0; int b = 0; int count = 0; while((ch= fgetc(f))!=EOF ){ a = ch; b = ch + 1; if(a < b){ count++; printf("%d:\n",a); printf("%d:\n",a); printf("%d:\n",count); } else{ count=0; //printf("%d:\n",b); } //ch= fgetc(f); i++; } if(i != count){ printf("%s: not increasing\n",argv[1]); } else{ printf("%s: increasing\n",argv[1]); } fclose(f); return 0; }
回答1件
あなたの回答
tips
プレビュー