• 締切済み

C言語について

私は今C言語で開発を行っています。その開発工程で困っていることを質問させていただきます。 そのシステムでは,最初入力を行い,そこから多分木のデータ構造にその入力データを格納していきます。しかし、格納した後に多分木の中にあるデータを調べてみると全然違う内容が参照されてしまいます。 どなたか原因と対処法をご指導ください。よろしくお願いします。

みんなの回答

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

これだけの情報では何もわかりません。 多分木のデータ構造(基本的な struct文)と、そのデータへ格納する方法とコード、さらにその格納したデータを参照する方法とコードを示してください(重要な部分だけ抜粋してくださ)。

関連するQ&A

  • アルゴリズムでわからない問題があります。(C言語)

    問題1:探索アルゴリズムであるハッシュ法について正しいものを選べ。 (1)ハッシュ関数の出力によりデータを格納した配列の先頭から順番に調べる. (2) 入力データを,ハッシュ関数の出力により求めた格納場所に基づいて,あらかじめ木構造に格納しておく. (4) 入力データを格納した配列を繰り返し2つに分割し,それぞれを順番に調べていく. (3) 入力データから格納場所の位置に変換する関数(ハッシュ関数)の出力により,データの探索場所を決定する。 (5) 入力データを,ハッシュ関数の出力により求めた格納場所に基づいて,あらかじめヒープに格納しておく 問題2:探索アルゴリズムであるハッシュ法について正しくないものを選べ。 (1)入力データはハッシュ値で決められる場所に格納される. (2) ハッシュ関数には,異なる入力の値に対し異なる値を出力することが求められる. (3) ハッシュ関数の時間計算量は,入力データのサイズに比例する. (4) データの格納場所が大きい方が効率がよい. (5) 一般に2分探索法より高速に動作する. どなたかアルゴリズムに詳しい方回答お願いします

  • C言語について

    C言語を少しかじっている初心者です。こんな私が何故か今年会社の新人にプログラミングを指導することになりまして。。。ですが、あまりにもわからないことが多すぎるので、どなたかお助けください。 質問。 (1)C言語で開発されるシステムって実際にはどういうものが多いのでしょうか。 (2)CはVBなどのように、フォーム昨日がないですが、操作画面はどうやって作るのでしょうか。 (3)単体プログラムを結合をさせる時は、作った関数をヘッダファイルにして、mainで呼び出すのでしょうか。 また、研修の最後に成果を見せてもらうために、新人でプロジェクトを組んで簡単なシステムを作ってもらおうと思っています。設計から仕様書作成、結合、テスト・・・と一通りの開発手順を体験させたいのです。 でどんなシステムを作ってもらおうか悩んでいます。1プロジェクト6人で開発日数は3日。コンパイラはlsic-86で、ファイル処理関係がいいのです。なるべく実用的なもので・・・と考えているんですが、なにか良いネタはないですかね。。。 質問ずくめで申し訳ありませんが、どなたかよろしくお願いいたします。

  • C言語の実用書

    C言語の開発現場でよく使われているテクニックがたくさん書かれているような本をご存知ないでしょうか? たとえば、モジュール分割はこういう風にすればよいとか、こういうプログラムを書く時はこういうデータ構造を使うとよいとかが書かれた本です。

  • C言語からデータベースにアクセス

    現在C言語で作成したシステムで MySQLで作成されたデータベースに格納されている画像のヒストグラム情報(すでに数値化して格納してあります)を取得 →プログラム内で処理→処理後の画像のファイル名、ヒストグラム情報をデータベースに格納 (C言語プログラム、データベースともに同じサーバー機に入っています) という処理を行いたいと思っているのですが、どのようにするのが良いでしょうか? データベースからのデータ取得はCから検索キーを指定して、データを検索、取得できればなおよいです。 PostgreSQLであればlibpqなどのライブラリがあるようですが、MySQLはどうにもわかりません。 C言語で作成したプログラムをCGIとして実装すればよいとは思うのですが、 解説サイトではフォームからの入力ばかりで、データベースから直接の受け渡しや、 画像情報のような大量のデータの受け渡しを解説しているサイトは見当たりませんでした。 なお、データベース操作はphpで行っています。 分かり辛い分で申し訳ありませんが、最悪Cプログラムからデータベースへのデータ格納だけでもかまいませんので、ご回答お願いします。

  • C言語について

    C言語の理解で行き詰まってしまい、ポイントを教えていただきたく質問させて頂きました。 抽象的な説明で申し訳ありません。 よろしくお願いします。 悩んでいるポイントは以下になります。 ファイルを保存してからは、プログラム内で system 関数を使って、 外部プログラムを実行する。 最初は、文字コードをEUCに変換して、ファイルに保存します。 system("nkf -e (抽出データを保存したファイル名) > data.txt"); 次に、形態素解析をして名詞などを取り出して、またファイルに格納する。 system("chasen data.txt | ./cs.pl > key.txt"); また、臨時で保存しておいたファイルを削除する。 unlink("data.txt"); 以上ですが、質問がわかりづらい場合は教えてください。 よろしくお願いします。

  • C,C++,VB,Java 各言語の特徴って何ですか?

    C,C++,VB,Java これらの各言語の特徴や開発にあたって注意しないといけない点などを教えてください。 ■背景 現行のシステムには様々な開発言語が用いられていますが、時々なぜこのシステムを開発するのにこの言語を使ったんだろう?と思うことってありませんか? 私は試行錯誤すればどの言語でも大抵のことはできると思っているせいか、いまいち言語の特徴が明確にできません。 上記の言語を比較してそれぞれどのようなことが言語の特徴となるのでしょうか? よろしくお願いいたします。

  • C言語のコールバック

    Java/C#/PHPといった言語はすでに使えるのですが、現在C言語およびWin32 APIを勉強中です。 C言語の関数にはJavaなどのインスタンスメソッドのthisにあたる引数が渡されませんが、Win32 APIのウィンドウプロシージャに代表されるコールバック関数において不都合があります。Javaの場合は、 interface Callback{ void onCallback(); } といったインターフェイスが定義されているものとして、 hoge(new Callback(){ int data = 10; public void onCallback(){ System.out.println(data); } }); のようなコードで引数以外のデータも参照できますが、C言語ではこのように引数で渡せないデータを参照するにはどうしたらよいでしょうか。グローバル変数として参照するのは、Javaのstaticなフィールドと同様に拡張性を損なうので避けたいと思います。

  • C言語初心者ですが……

    C言語初心者ですが…… すみません。このたびC言語を学び始めるにあたって一つ困ったことが起きましたので、助けてください。 はじめての人御馴染みの「Hello,world!」を画面に表示させるプログラムをつくりました。拡張子も構文も完璧に作ることができました。しかし、exeファイルを開いて確認しようとしたところ、一瞬で画面が閉じてしまい、「Hello,world!」が表示されているかどうか確認できずにいます。 この原因が何なのか、対処法とあわせてご指導していただけると幸いです。 なお、自分はWindows7でMicrosoft Visual C++ 2010 Expressを使っています。

  • C言語について質問です。

    C言語についての質問です。 C言語の問題で、 キーボードから氏名・身長・体重の値を受け取り、受け取った身長からもとめられる標準体重を受け取った体重から差し引いた値を計算する。 入力したデータと標準体重のデータを次のように表示するプログラムを作成せよ。 入力データ数は3件として、氏名、身長、体重、標準体重のデータは構造体に格納して、表示する際にデータの入った構造体を読み出すようにしなさい。 という問題があり、苦戦しております。 サンプルソースとして以下があり、 #include <stdio.h> #define NUMBER 3 typedef struct { char name[20]; float weight; float height; float diff; }MEMBER; int main(void){ int i; MEMBER member[NUMBER]; puts("氏名をおわすれなく"); /*構造体への入力部分*/ for(i=0;i<NUMBER;i++){ /*ここに追加*/ } /*構造体データを読み出して画面に表示する部分*/ printf("氏名\t身長[cm]\t体重[kg]\t体重-標準体重[kg]\n"); puts("--------------------------------------------------------"); for(i=0;i<NUMBER;i++){ printf("%s\t%8.1f\t%8.1f\t%8.1f\n", member[i].name,member[i].height, member[i].weight, member[i].diff); } puts("--------------------------------------------------------"); } 中央あたりの「構造体への入力部分」の書き方が分かりません。 どなたか手助けしていただけないでしょうか。

  • C言語について

    リストやスタック、キューなどのデータ構造をC言語で書くとき、構造体をほとんどのプログラムで使用されているのですが、それはなんのためなのでしょうか?それと、 -> このような記号で表された式、例えば q->head=0; という式を見たのですが、 この q->head は q > q - head という意味で捉えてはいけないのでしょうか?捉えていいのなら最後に0で初期化しているのがなぜかわかりません。 よろしくお願いします。

専門家に質問してみよう