掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.25326

構造体について・・・
投稿者---lol(2006/01/14 15:10:20)


下の質問よりもレベルが低い質問なのですが、よろしくお願いします。
ID、名前をメンバーとする構造体を作り、次に全データ(3名分)を「構造体の配列と初期化」しました。
この構造体を使用して、標準入力から指定したIDを手がかりとして検索を行い、該当するキャラのデータを出力するプログラムを作りたいのですが、検索の方法が良くわかりません。

配列の第一引数から判断するのだろうかと思い
int main()
{
int i;
int num;

printf("input ID:");
scanf("%d",&num);

for(i = 0;i < 7; i++){
if (num == stu_data[i][0])
としてみたのですが上手くいきませんでした。
どなたかご教授の程をよろしくお願いします。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:構造体について・・・ 25328 もちもちのき 2006/01/14 15:21:22
<子記事> Re:構造体について・・・ 25333 επιστημη 2006/01/14 15:54:00
<子記事> Re:構造体について・・・ 25337 lol 2006/01/14 16:50:09
<子記事> Re:構造体について・・・ 25342 lol 2006/01/14 17:37:25


No.25328

Re:構造体について・・・
投稿者---もちもちのき(2006/01/14 15:21:22)


構造体を含む全部のプログラムを載せてもらってもいいですか?



この投稿にコメントする

削除パスワード

No.25333

Re:構造体について・・・
投稿者---επιστημη(2006/01/14 15:54:00)


>としてみたのですが上手くいきませんでした。

教えてもらいたいんでしょ?
「なにがどう上手くいかないか」をなぜ説明しないかなー…

#「具合が悪い」だけで治してくれる医者はいないって。



この投稿にコメントする

削除パスワード

No.25337

Re:構造体について・・・
投稿者---lol(2006/01/14 16:50:09)


・プログラム
#include<stdio.h>

struct students{ /* students構造体の宣言 */
int number;
char *name;
};

struct students stu_data[3] = {
0000000,"山田太郎",
0000001,"山田花子",
0000002,"山田次郎"
};

int main()
{
int i;
int num;

printf("Input Number:");
scanf("%d",&num);

for(i = 0;i < 7; i++){

if (num == stu_data[i][0])
printf("%d ,%s",stu_data[i].number,stu_dat. [i].name);
else;
}
return 0;
}

質問の仕方が悪く本当に申し訳ありません。
コンパイルをすると
エラー 互換でない型変換(関数 main )
エラー 無効な間接参照(関数 main )
とでてしまいまいます。
ifの条件のstu_data[i][0]がマズいのだと思いますが、プログラムの仕方が解からず質問させていただきました。


この投稿にコメントする

削除パスワード

No.25339

Re:構造体について・・・
投稿者---Blue(2006/01/14 17:19:55)


掲示板ご利用上の注意を読んでいますか?
守られていないことがいくつかあるようですけど。



> if (num == stu_data[i][0])
2次元配列でないので stu_data[x][y]のような書き方ではありません。
if ( num == stu_data[ i ].number )
かと。

しかしならが、
> printf("%d ,%s",stu_data[i].number,stu_dat. [i].name); 
で出来ているに何故?



この投稿にコメントする

削除パスワード

No.25416

Re:構造体について・・・
投稿者---REE(2006/01/16 10:44:22)


>struct students{ /* students構造体の宣言 */
>int number;
>char *name;
>};
>
>struct students stu_data[3] = {
>0000000,"山田太郎",
>0000001,"山田花子",
>0000002,"山田次郎"
};

本題とははずれますが、
この数字の書き方は、8以上の時に破綻します。
なぜならば、0で始まる数値は8進数と解釈されるためです。



この投稿にコメントする

削除パスワード

No.25342

Re:構造体について・・・
投稿者---lol(2006/01/14 17:37:25)


字下げするのを忘れておりました・・・。
次回からはしっかりやらせていただきます。

回答有難うございました!
まだ構造体を良く理解しておらず、テキストを参考にしながら作ったものでして・・・。



この投稿にコメントする

削除パスワード

No.25349

Re:構造体について・・・
投稿者---επιστημη(2006/01/14 18:47:51)


> テキストを参考にしながら作ったものでして・・・。

ちっとも参考にしてないじゃん。




この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧