締切済み すみません。C言語の構造体で簡単なプログラムがあれば教えてください。 2010/01/19 23:32 すみません。C言語の構造体で簡単なプログラムがあれば教えてください。 みんなの回答 (4) 専門家の回答 みんなの回答 ICE_FALCON ベストアンサー率56% (63/111) 2010/01/20 19:43 回答No.4 こんなのとかかな。 #include<stdio.h> typedef struct { int i; float f; char s[3]; } Hoge_t; void print_hoge( Hoge_t *h ) { printf( "i:%d\n", h->i ); printf( "f:%f\n", h->f ); printf( "s:%s\n", h->s ); } int main() { Hoge_t hoge; hoge.i = 1; hoge.f = 0.1; sprintf( hoge.s, "abc" ); print_hoge( &hoge ); return 0; } 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 jacta ベストアンサー率26% (845/3158) 2010/01/20 17:38 回答No.3 こんなのとか... #include <stdio.h> int main(void) { struct { char *s; } data = { "Hello, World!" }; puts(data.s); return 0; } 質問者 お礼 2010/01/20 18:04 短くていいですけど、これってどういう意味ですか? 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 hidebun ベストアンサー率50% (92/181) 2010/01/20 08:49 回答No.2 構造体を使った簡単なプログラムということであれば、双方向リストとか。 ググればプログラム例はいくらでもあります。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 Tacosan ベストアンサー率23% (3656/15482) 2010/01/19 23:46 回答No.1 「構造体」はプログラムじゃないので「構造体で簡単なプログラム」というのはありえないんだけどなぁ. 「構造体を使う簡単なプログラム」というなら div_t を使ってみるとか. 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連するQ&A C言語構造体についてです。 C言語、π=PI 3.14159265で構造体を用いてmensekiを呼び出して 半径と面積を計算して出力するプログラムです。下の空白を埋めてもらえますか? /* 構造体のプログラム */ #include <stdio.h> #include <math.h> #define PI 3.14159265 struct Data { /* 半径rと面積areaをdoubleで宣言 */ }; void menseki(struct ... 構造体のポインタを引数とする ){ /* 面積を計算する際に構造体のアドレスから計算する */ circle->area=PI* .....; } main(){ struct Data example[2]; //構造体配列 int i; /* 半径rを構造体配列を用いて2例入力する */ /* 2例の各々について mensekiを呼び出して 半径と面積を計算して出力する */ } よろしくお願いします。 C言語でプログラムを作りたい 現在、C言語を学習中でして、入出力・制御文・配列・演算子・ポインタ・自作関数・構造体・共用体・ファイル入出力くらいはなんとか使えるくらいになったと思うのですが、そこで、一つ自分でプログラムを作ってみたいと考えています。 しかしながら、これまで学習してきたことを駆使して作れるプログラムが思いつきません。 ですので、なにかいいお題があれば教えていただきたいです。 これまで学習してきたことをしっかりと定着させたいと考えています。 宜しくお願いします。 C言語の構造体 組込み系でマイコンにソフトをプログラミングの仕事をしています。 C言語は初心者です。 http://www9.plala.or.jp/sgwr-t/c/sec15.html のページの冒頭に、 「構造体は幾つかの異なる型のデータをまとめて 1つのデータ型として扱うものなのです。」と書かれています。 1つのデータ型として扱うとどのようなメリットがあるのでしょうか? 例えば、 struct seiseki seito1; のように対象が1つ(seito1)なら int seito1_no; char seito1_name[20]; double seito1_average; と変数を確保すれば済むのに、 何故、構造体で宣言するのでしょうか? 例えば、 struct seiseki seito2[20]; のように、似たものが複数ある場合は(seito2が20人分なるなら、) 構造体で宣言する意味があるとはなんとなくわかります。 後ページの http://www9.plala.or.jp/sgwr-t/c/sec15-4.html では、関数でのやり取りが書かれています。 関数で引数や返値で扱うときに構造体にしておいた方が良いからでしょうか? 構造体のメリットというのが今一わかりません。 対象が1つでも構造体で書いた方がいろんな意味で良いのでしょうか? 如何せん、初心者なので質問がうまく書けませんがご了承ください。 ※上から目線的な回答はご遠慮願います。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム C++言語で、構造体のコピーは可能(しても良い)のでしょうか? C++言語で、構造体のコピーは可能(しても良い)のでしょうか? 問題がある場合は、なぜだめなのか知りたいです。 構造体は可変長ではありません。 typedef struct kumi { char namae[10]; int ten; }Kumi; Kumi a, b; strcpy(a.namae, "AAA"); a.ten = 50; b = a; C言語のプログラムについて質問です。 C言語のプログラムについて伺いたいことがあるんですが5人くらいの名前、数学、英語、国語の点数を入力して各教科の最高点、最低点、平均点、それぞれの数+英+国の合計点を表示するプログラムを構造体を使って作りたいと思っています。 もしよろしければ事細かに教えていただけないでしょうか。 よろしくお願いします。 C言語の構造体について 構造体を勉強している所なのですが変数をまとめられるのは分かりましたがどのサイトを見てもいまいち使い所がわかりません。 struct test { int a; int b; int c; }testtest; testtest.a = 0; testtest.b = 1; testtest.c = 2; 例えば上記のような構造体を作成するとします。 私の見たサイトでは構造体で宣言はまとめられても初期化する事はできないと書いてありました。 下記のように変数を普通に宣言&初期化するよりも手間がかかってしまっていると思うのですが私の考えが及ばない何か別の使い方または処理が早くなったりする事があるのでしょうか?。 int a = 0; int b = 1; int c = 2; C言語で C言語で複素行列の和と積を計算するプログラムを作りたいのですが、 よくわからないので教えてほしいです。複素数を構造体で定義して、配列を使えば いいと思うのですが・・・。 ちなみに実数の行列の和と積を求めるプログラムはわかっています。 C言語について プログラミング言語について質問があります。今、C言語を練習中ですが、C言語に関する本を見ると、大体、(入門者用の教科書しか知らないのですが)ファイル操作とか、構造体とかの説明とかで、終わっています。それで、自分はWindowsでグラフィック操作(例:動画とかを扱う)とかの、プログラムを組みたいのですが、C言語でそれができるのでしょうか。それともC++言語とか、Javaとか他の言語を習得しなければいけないのでしょうか。また、欲張りますが、C言語でグラフィック操作ができるのなら、どんな本を読めばいいのでしょうか。解らなかったので、投稿しました。よろしければ、回答宜しくお願いします。 C言語 構造体 2 三つの構造体α、β、γの実数部、虚数部の値(実数)をそれぞれ入力し、 (α+γ)(γ+β)を求めて表示せよ。 ただし、複素数を、実数部と虚数部に対応するメンバで構成される構造体として表し、複素数の加算用関数c_add()と乗算用関数c_mul()を作成して、これを利用すること。 これらの関数は、sとtを複素数を表す構造体としたとき、c_add(s,t)、c_mul(s,t)と呼び出すと、それぞれ戻り値として、sとtを加算、または乗算した結果である複素数の構造体を返すものとする。 という問題なのですが。。。。 #include<stdio.h> int main(void){ struct complex{ double real; double imaginary; }; struct complex[3]; double real; double imag; printf("α= "); scanf("%d,&real); scanf(%d,&imag); printf("β= "); scanf("%d,&real); scanf(%d,&imag); printf("γ="); scanf("%d,&real); scanf(%d,&imag); (α+γ)=c_add(α,γ); (β+γ)=c_add(β,γ); (α+γ)(β+γ)=c_mul(α+γ,β+γ) result=(α+γ)(β+γ) printf("result= "); まで友達と考えてみたのですが、このあとどうしたらいいのかわかりません>< どなたかお教えください。。お願いします。。。 C言語のプログラム集 こんにちは。C言語のテキストにはプログラムとその説明が書いていますが、 このC言語のプログラムが多くのっているような本はありますか?本屋さんで探したのですが、プログラムがものすごく多くのっているようなものがなかったので、もしお分かりの方がおられましたが、本の紹介をお願いします。 テキストデータと構造体。 テキストデータを構造体に代入し、キャッシュの仕組みの様に見せるプログラムをC言語で作れますか? 教えて下さい。ちょっと緊急です… C#の構造体に関して C#の構造体に関して C#で構造体で配列を持ちたいと思い、宣言の仕方や使い方を 勉強していますが、どうしてもコンパイルは通るもののエラーと なってしまいます。 《ソース》 単純に構造体で宣言した"a"という配列に、"ABC"という文字列を 代入したいだけですが。。。 namespace テスト環境 { struct test { public string []a; } class Program { static void Main(string[] args) { test aaa = new test(); aaa.a[0] = "ABC"; } } } 配列の初期化等は、ようやく理解したつもりではいますが、構造体 が絡むとどうしてもわかりません。 どこをどのように修正したら良いかを教えて下さい。 初歩的な質問で申し訳ありませんが、よろしくお願いします。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム C言語の構造体のサイズについて いつもお世話になっていります。 早速ですが、C言語の構造体のサイズについて教えてください。 typedef struct B { short code; char name; float price; } B; typedef struct A { B bbb[10]; double sougaku; } A; A aaa; といった構造体があった場合に、 sizeof(aaa.bbb.code) + sizeof(aaa.bbb.name) + … + sizeof(aaa.sougaku) という風に一つ一つサイズを取得し、合計して構造体のサイズを取得した場合と sizeof(aaa) という風に構造体のサイズを取得した場合のサイズの値が異なるといった現象が起きます。 その原因が分からなくて困っております。 そこで考えられる要因をお教えください。 因みに実際の構造体はサイズで言えば2500バイトくらいあります。 froat/char/double/short 型を使用しております。 よろしくお願いします。 C,C++,C++/CLIの構造体とクラス C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが privateかpublicかという違い「だけ」しか全くないのでしょうか? クラスにおける value class / ref class という分類はC++/CLIのもので これについては value class の方は C言語の構造体に近いという事でいいでしょうか? ref classの方は ネイティブのC++のクラスを マネージ用にしたようなもので C++/CLIの構造体は C++のそれと同じで OKですか? そしてそれらの構造体には、値型・参照型といった分類はないのでしょうか? 構造体のプログラム・・・・ 構造体のプログラムを作っているのですが、コンパイル時に "Fatal: ファイル 構造体1-1.OBJが開けません"と出て実行できません。 やっぱりファイル名が日本語だとダメなんですか? 他の日本語の名前のプログラムは実行できるのに・・。 C言語について リストやスタック、キューなどのデータ構造をC言語で書くとき、構造体をほとんどのプログラムで使用されているのですが、それはなんのためなのでしょうか?それと、 -> このような記号で表された式、例えば q->head=0; という式を見たのですが、 この q->head は q > q - head という意味で捉えてはいけないのでしょうか?捉えていいのなら最後に0で初期化しているのがなぜかわかりません。 よろしくお願いします。 C言語 構造体 商品番号no、商品名name、仕入れ価格k1、販売価格k2、利益riの5つのメンバからなる構造体syouhinを作成し、noからk2までのデータを入力、riを求め結果として構造体の5つのメンバを出力しなさい。データはデータファイルを作成し読みこむこととし、商品数は数個与えなさい。 という問題なのですがよく分かりません。 プログラムを教えてください。 よろしくお願いします。 C言語の構造体で悩んでます。 構造体で顧客情報を管理する課題に取り組んでいるんですが、言語は苦手な分野で解決しかねてます。みなさんの力を借りたいです。お願いします。 課題は、構造体で顧客情報を確保(顧客情報入力の前に、キーボードで1~50の顧客情報の数を入力し、その数の構造体を確保)し、その後、顧客情報を登録するというものです。 私が記述したのは下記のとおりです。 間違いだらけだと思います。すみません。 #define size_id (5) #define size_name (25) #define size_huri (25) #define size_tel (17) struct kokyaku { long *id; char *name; char *huri; char *tel; }; int main() { int a , i; // 構造体確保の数、構造体参照時使用 long c = 1; // id struct kokyaku *ko; printf("顧客情報がありません。何件分確保しますか?(1 - 50)"); scanf("%d",&a); ko = (struct kokyaku *)malloc( sizeof(struct kokyaku) * (a)); if(a >= 1 || a <= 50) { for(i = 0;i < a;i++){ ko[i].id = (long*)malloc(size_id); ko[i].name = (char*)malloc(size_name); ko[i].huri = (char*)malloc(size_huri); ko[i].tel = (char*)malloc(size_tel); } }else{ printf("<<入力範囲にありません>>\n"); printf("<<処理を中断します>>\n"); return 0; } while(c <= a) { i = 0; printf("***** 顧客登録画面 *****\n"); ko[i].id = &c; printf("氏名 :"); scanf("%s", ko[i].name); printf("ふりがな:"); scanf("%s", ko[i].huri); printf("電話番号:"); scanf("%s", ko[i].tel); c++; i++; } } エラーとか特にないのですが、構造体を件数分確保できていないと思います。 この後にも削除やファイル出力といった展開をさせなければならないのですが、後はなんとか自力でがんばろうと思います。 乱文ですみません。 よろしくお願いします。 C言語の構造体で、レジストリキーを管理したい windows のプログラム中で、OSのレジストリキーの情報を管理したいです。プログラムが起動時 レジストリからキーの値が読み込まれて、ある仕組みに持たせたいですが、 例えば、Java Development Kit¥1.4のキーの下に JavaHome REG_SZ C:\java MicroVersion ReG_SZ 2 また、 Java Development Kit¥1.5のキーの下にも JavaHome REG_SZ C:\java MicroVersion ReG_SZ 2 あるとします。 REG_SZの型だけじゃなくて、DWORDの型のデータも入っているキーがあると。 読み込み時に、ループだけで、その部分の値を読み込むようにしたいですが、 C言語でどうやって、構造体で管理したいですが、あるいは、ほかのいい方法がありますか? C言語でのプログラムの作り方 はじめまして。C言語初心者の中学一年生です。 C言語でプログラムを作ろうと思ったのですが、やり方がわかりません。 ”hello”と表示するプログラムの作り方を教えてください。 使用しているコンパイラは"Visual C++ 2010"です。パソコンはWindows xpです。 中学生でも分かるように教えてください。 エディエタ、やソースプログラムなどの用語についても教えてくださると嬉しいです。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
短くていいですけど、これってどういう意味ですか?