かずまさん返信ありがとうございます。
コードの提示もありがとうございます。
時間が空いたら元の私のコードに取り込もうと思います。
fgetsはあまり使ったことがないですが調べて使ってみようと思います。
アドバイスありがとうございました。
検索結果 34 件
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字以外の文字をはじきたい。
- 返信数: 11
- 閲覧数: 7928
Re: 数字以外の文字をはじきたい。
フィーロさん。かずまさん返信ありがとうございます。 フィーロさんのコードで一桁以外の数字をはじけているので参考にしたいと思います。 かずまさんのコードも二桁以上の数値を配列に渡せているのでこれもまた参考にしたいと思います。 かずまさんのコード実行例 m : display this menu r : reset stack i [data] : input data o : output data s : show stack e : exit >> m m : display this menu r : reset stack i [data] : input data o : output...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字以外の文字をはじきたい。
- 返信数: 11
- 閲覧数: 7928
Re: 数字以外の文字をはじきたい。
かずまさん返信ありがとうございます。 return stack[sp]を消してみても正常に動いたので余計だったんですね・・。 %sと%c説明もわかりやすかったです。ありがとうございました。 確認したところ確かにchar t; scanf("%s", &t);では二桁以上の数字を正常には読み取ってくれませんでした。 実行するコマンドを選択肢を提示します。 r・・・スタックを初期化します。 i・・・スタックに数字を格納します。 o・・・スタック内から数字を一つ取り出します。 s・・・現在のスタック内の中身を表示します。 e・・・終了します。 それでは実行したいコマンドに対応する文字を入力してくださ...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字以外の文字をはじきたい。
- 返信数: 11
- 閲覧数: 7928
Re: 数字以外の文字をはじきたい。
maruさん、かずまさん返信ありがとうございます。 push関数の返却値というのは return stack[sp]のことでしょうか。これは数値をスタックに格納したのち、その次(上)に来る数値のために用意したものです。・・と認識していますが何か間違っているでしょうか・・・? また書き忘れていたのでですがこのpush関数を呼び出す際に文字を入力してこの関数を呼び出しています。 int main(void) { char choice; printf("初期化します\n"); init_stack(); while(1){ printf("実行するコマンドを選択肢を提示します。\n"); prin...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字以外の文字をはじきたい。
- 返信数: 11
- 閲覧数: 7928
数字以外の文字をはじきたい。
質問です。 現在スタックに値を入れたり出したりする課題をやっているのですが、数値をスタックに入れるときのエラー耐性で苦戦しています。 具体的にはpush関数(数値をスタックに入れる関数)に数値以外の文字が入力された時にやり直させるというものです。 #incude<stdio.h> #include<ctype.h> #define stack_max 100 int stack[stack_max]; int sp=-1; int push(int data) { if(isdigit(data)){ if(data<10){ printf("---------\n"); printf("pu...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 整数型について
- 返信数: 3
- 閲覧数: 2068
整数型について
以下のようなプログラムを組んだのですが実行時にSegmation faultと出ます。 何が原因なんでしょうか・・。よろしくお願いします。 #include<stdio.h> int count_bits(unsigned x) { int bits = 0; while(x){ if(x & 1U) bits++; x >>= 1; } return bits; } int int_bits(void) { return count_bits(~0U); } void print_bits(unsigned x) { int i; for(i = int_bits() - 1; i >= 0...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: データの追加と削除について
- 返信数: 17
- 閲覧数: 8164
Re: データの追加と削除について
配慮ありがたいです。
理解するためにも、もう一度コードを見直してみます!
最後までありがとうございました。
理解するためにも、もう一度コードを見直してみます!
最後までありがとうございました。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: データの追加と削除について
- 返信数: 17
- 閲覧数: 8164
Re: データの追加と削除について
かずまさん、返信遅くなり申し訳ありません。
データの追加はheadやtailで追加する場所を変更できるのですね。
ソースありがとうございます。自分では思いつきませんでした・・。
またソートの関数は以前の記事で完成したので省略させていただきました。
リンク
http://dixq.net/forum/viewtopic.php?f=3&t=19436
ちなみにここでのソートは探索をするためのものを想定していたためファイルの中身自体を入れ替えるものではないです。
もしこのソート法ではうまくいかないのであれば見当違いなことを言っているとは思いますがご了承ください。
データの追加はheadやtailで追加する場所を変更できるのですね。
ソースありがとうございます。自分では思いつきませんでした・・。
またソートの関数は以前の記事で完成したので省略させていただきました。
リンク
http://dixq.net/forum/viewtopic.php?f=3&t=19436
ちなみにここでのソートは探索をするためのものを想定していたためファイルの中身自体を入れ替えるものではないです。
もしこのソート法ではうまくいかないのであれば見当違いなことを言っているとは思いますがご了承ください。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: データの追加と削除について
- 返信数: 17
- 閲覧数: 8164
Re: データの追加と削除について
shira211さん、かずまさん返信ありがとうございます。 shira211さん、追加の関数ですが不具合を見つけたので修正中です・・。不具合というのは追加した値が最後の要素にくっついてしまうというものなんですが、かずまさんのコードを見ていたら直すべきところが分かり、それを現在修正しています。また削除の件、アドバイスありがとうございます!実践してみます。 かずまさん、ソースコードの提示ありがとうございます。訂正の件も了解です。参考にさせていただきます。あと、きれいなインデントを目指します! 今回の質問とは関係ないのですが修正した配列は最終的にソートして探索しようかと思っているので、配列の要素の位...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: データの追加と削除について
- 返信数: 17
- 閲覧数: 8164
Re: データの追加と削除について
追加する方はなんとか形になりましたが削除する方がやはりどうしていいかわかりません・・。
調べてみたところ過去のトピックで似たようなことをやっていたのですがよくわからなかったです・・。
たぶんこれがみけCATさんがおっしゃっていたやり方に近いかなと思うのですが・・。
過去トピック
http://dixq.net/forum/viewtopic.php?t=11000
調べてみたところ過去のトピックで似たようなことをやっていたのですがよくわからなかったです・・。
たぶんこれがみけCATさんがおっしゃっていたやり方に近いかなと思うのですが・・。
過去トピック
http://dixq.net/forum/viewtopic.php?t=11000
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: データの追加と削除について
- 返信数: 17
- 閲覧数: 8164
Re: データの追加と削除について
わかりました。せっかくまとめるという方法を提示していただいいたのですが、今回は削除する関数と追加する関数、別々に分けようと思います。今回のこのコードが完成してからまとめてみる方法にも挑戦したいと思います。
なるほどファイルフォーマットはそういうことなのですか。
でしたら二番目です。
なるほどファイルフォーマットはそういうことなのですか。
でしたら二番目です。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: データの追加と削除について
- 返信数: 17
- 閲覧数: 8164
Re: データの追加と削除について
指摘ありがとうございます。修正してみます
またファイルフォーマットですが何分初心者なもんでよくわからないのですがどう答えたらいいんでしょうか・・
emacsで作成したファイルに数値をうちこんで作りましたとしか言えないです・・。申し訳ありません・・。
ということは追加する関数と削除する関数をまとめてしまえばいいのでしょうか?みけCAT さんが書きました: 「ファイルからメモリにデータを全部読み込む→メモリ上のデータを修正(追加or削除)する→修正したメモリ上のデータをファイルに書き込む(上書きする)」
またファイルフォーマットですが何分初心者なもんでよくわからないのですがどう答えたらいいんでしょうか・・
emacsで作成したファイルに数値をうちこんで作りましたとしか言えないです・・。申し訳ありません・・。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: データの追加と削除について
- 返信数: 17
- 閲覧数: 8164
Re: データの追加と削除について
なるほど。わかっていませんでした。 コードはこれでコンパイルできると思います。 #include <stdio.h> #include <stdlib.h> #define DATA 10000 int insert(const char filename[20],int a[DATA] ) { int n; FILE *fin; if ((fin=fopen(filename,"a"))==NULL){ return -1 ; } for(n = 0; n < 1 ; n++){ fprintf(fin,"%s",a[n]); } fclose(fin); }//xをデータaに加える関数 i...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: データの追加と削除について
- 返信数: 17
- 閲覧数: 8164
データの追加と削除について
すでにあるファイルにx(変数)を新たに加える関数と、x(変数)をファイルから削除する関数を作成せよ という問題です。 コードを途中まで作成したのですが実行結果がうまく出ません。 insertの方は追加されるのが(null)のみです。 なにが原因なのでしょうか? またdelete(削除)の方はいろいろ調べてみたものの、どうすればいいかわかりません・・。 解決策を教えてください。 #include <stdio.h> #include <stdlib.h> #define DATA 10000 int insert(const char filename[20],int a[DATA] ) { ...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再帰関数呼び出しについて
- 返信数: 10
- 閲覧数: 4023
Re: 再帰関数呼び出しについて
なるほどそうだったんですね・・。
int の限界は2^31 -1と聞いたのですが実際に二分探索でオーバーフローさせるにはめちゃくちゃ多いデータを用意しなくてはならないってことなんですかね・・。二分探索、奥が深いです・・。
まあなにはともあれ勉強なりました!ありがとうございます!
int の限界は2^31 -1と聞いたのですが実際に二分探索でオーバーフローさせるにはめちゃくちゃ多いデータを用意しなくてはならないってことなんですかね・・。二分探索、奥が深いです・・。
まあなにはともあれ勉強なりました!ありがとうございます!
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再帰関数呼び出しについて
- 返信数: 10
- 閲覧数: 4023
Re: 再帰関数呼び出しについて
なるほど・・。
書き直しておきます!
書き直しておきます!
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再帰関数呼び出しについて
- 返信数: 10
- 閲覧数: 4023
Re: 再帰関数呼び出しについて
すみません提示するコード間違えてました。正しくは、下記のコードの変更前のものです。 紙に書くと自分が何を間違えているか確認することができました。ありがとうございます。 きちんと動作するのでこれにて解決とさせていただきます。 最終コードを載せておきます。 #include <stdio.h> #include <stdlib.h> #define DATA 10000 int fileinput(const char *filename, int a[]) { int n, x; FILE *fin = fopen(filename, "r"); if (fin == NULL) return ...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再帰関数呼び出しについて
- 返信数: 10
- 閲覧数: 4023
Re: 再帰関数呼び出しについて
提示されたコードと前回のトピックを参考にコードを作ってみたのですが、うまく値を探せません。何が原因なのでしょうか? 教えてください。よろしくお願いします。 #include <stdio.h> #define DATA 10000 int fileinput(const char *filename, int a[]) { int n, x; FILE *fin = fopen(filename, "r"); if (fin == NULL) return -1; for (n = 0; n <= DATA && fscanf(fin, "%d", &x...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
ごもっともです・・。
コードは見やすくなるよう心がけます。
コードは見やすくなるよう心がけます。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再帰関数呼び出しについて
- 返信数: 10
- 閲覧数: 4023
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
無駄が多くて申し訳ないです。
もしよろしければ、xを使ったやり方、もしくは引数ではなくローカル変数を使うやり方を教えていただけませんか?
また、確かにyは不必要でした。修正しておきます。
もしよろしければ、xを使ったやり方、もしくは引数ではなくローカル変数を使うやり方を教えていただけませんか?
また、確かにyは不必要でした。修正しておきます。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
最後まで至らなくて申し訳ないです・・。 今度こそこれで大丈夫だと思います! #include <stdio.h> #include <stdlib.h> #define DATA 10000 char fileinput(char filename[20], int a[DATA]) { int n; FILE *fin; if ((fin=fopen(filename,"r"))==NULL){ return(-1); } n=0; while(fscanf(fin, "%d", &a[n]) !=EOF) n++; fclose(fin); ...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
連投すみません 指摘されたところを直したらしっかり動くようになりました! ありがとうございます! #include <stdio.h> #include <stdlib.h> #define DATA 10000 char fileinput(char filename[20], int a[DATA]) { int n; FILE *fin; if ((fin=fopen(filename,"r"))==NULL){ return(-1); } n=0; while(fscanf(fin, "%d", &a[n]) !=EOF) n++; fclose(fin); return n; }//...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再帰関数呼び出しについて
- 返信数: 10
- 閲覧数: 4023
再帰関数呼び出しについて
http://dixq.net/forum/viewtopic.php?f=3&t=19432 からの継続です。 【「二分探索をする関数」を、再帰関数呼出しをするものに作り替えよ。】 という問題なのですが何を加えればいいかわかりません・・。ネットや参考書で調べてみたのですが出てくるのはn!の例題だけで二分探索はどうするのかというのが分からなくなってしまいました。解決策を教えてください。よろしくお願いします。 int binsearch(int a[DATA],int n,int x) { int max; int min; int mid; while (scanf("%d", &x)==1)...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
できました! アドバイスありがとうございました! 最終コードは以下のようになります。 #include <stdio.h> #include <stdlib.h> #define DATA 10000 char fileinput(char filename[20], int a[DATA]) { int n; FILE *fin; if ((fin=fopen(filename,"r"))==NULL){ return(-1); } n=0; while(fscanf(fin, "%d", &a[n]) !=EOF) n++; fclose(fin); return n; }//ファイルから...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
purin52002さん返信ありがとうございます。
68行目の件了解です。
同じく引数の数お揃えたらいけました!
123の件も max = n-1 を max =n に変えたらいけました!
68行目の件了解です。
同じく引数の数お揃えたらいけました!
123の件も max = n-1 を max =n に変えたらいけました!
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
purin52002さん返信ありがとうございます。
アドバイスありがとうございます。
アルゴリズムの件分かりました。自分で調べてみます・・・。
アドバイスありがとうございます。
アルゴリズムの件分かりました。自分で調べてみます・・・。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
purin52002さん返信ありがとうございます。 指摘されたところを修正してみました。 きちんとファイルからは読み込まれるようになりました。 しかしうまいこと実行結果が出てくれません・・。疑問なのは要素の位置が4の倍数で出ていること、また3桁の数字が正しく表示されないことです。またファイルを開いてそこからループさせようともしましたがこのループも「探したい値を入力してください」が1回だけ表示されてその後は実行結果の通りです・・。解決策を教えてください。よろしくお願いします。 ファイルの中身とファイル名はこれです-->wc.out{1,6,43,123,2} ------------------...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数を使ったコードについて
- 返信数: 29
- 閲覧数: 22845
Re: 関数を使ったコードについて
purin52002さん返信ありがとうございます。 無事コンパイルできました! コンパイルはできたのですが・・ファイルからデータを入力する関数が動きません・・。これは関数に問題があるのでしょうか?それとも関数の呼び出しに問題があるのでしょうか?よろしくお願いします。 #include <stdio.h> #include <stdlib.h> #define DATA 10000 char fileinput(char filename[20], int a[DATA]) { int n; FILE *fin; if ((fin=fopen(filename,"r"))==NULL){ ret...