構造体配列の氏名を格納する方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
samusu0905
記事: 336
登録日時: 10年前

構造体配列の氏名を格納する方法

#1

投稿記事 by samusu0905 » 9年前

氏名・科目を格納する構造体配列を作って、氏名と点数を格納するプログラムを作りたいと考えています。
点数の格納は出来ましたが、氏名を格納する方法が思いつきません。
ヒントをお願いします。
点数を格納したコードはこれです。

コード:

int sum1[SUBJECTNO];       //科目
for(i=0; i < SUBJECTNO; i++)    //ここで科目の点数を一度初期化
		sum1[i] = 0;

for(i=0; i < SUBJECTNO; i++){             //ここで点数を格納
		sum1[0] += myclass[i].kokugo;
		sum1[1] += myclass[i].rika;
	}
点数の格納はこんな感じでできました。
実際に実行したら、格納された点数を表示することは出来ました。
出来ないところは、氏名を格納するところです。

box
記事: 2002
登録日時: 13年前

Re: 構造体配列の氏名を格納する方法

#2

投稿記事 by box » 9年前

とりあえず、構造体の定義を見せてください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#3

投稿記事 by samusu0905 » 9年前

boxさん>>すみませんでした。。

コード:

struct Siken{
	char name[32];
	int kokugo;
	int rika;
};
これが構造体の定義で、

コード:

struct Siken myclass[JUKENNO] = {
		{"田中",70, 80},
		{"鈴木",75, 69},
		{"村田",80, 70},
		{"太田",66, 80},
		{"加藤",70, 65}
	};
これが氏名と科目の点数を格納する構造体配列です。
お願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#4

投稿記事 by softya(ソフト屋) » 9年前

前回のトピックが物議を醸しておりましたので、何らかのコメントをお願いします。スタンスの表明で構いません。
「C言語の練習問題で文字列を反転して並び替える関数を作る処理について • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=15280#p121632
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#5

投稿記事 by samusu0905 » 9年前

softyaさん>>その回答は今丁度書き込みました。
あれ以上、書くことは有りません。
私は、本当にプログラムを作って、C言語を正しく学んでからゲーム制作に活用したいと考えています。
間違ったプログラムは学びたくないし、自分自身もまともな自作のプログラムを組みたいと考えています。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#6

投稿記事 by softya(ソフト屋) » 9年前

> 間違ったプログラムは学びたくないし、自分自身もまともな自作のプログラムを組みたいと考えています。
であれば投げやりにならずにもっと考えましょう。

前提とする問題と提示されているコードが乖離しています。
構造体に初期値でデータを与えて、そこから点数の合計値を求めているコードが提示されていますが、問題は

>氏名・科目を格納する構造体配列を作って、氏名と点数を格納するプログラムを作りたいと考えています。
>点数の格納は出来ましたが、氏名を格納する方法が思いつきません。

らしいので全く違うものです。何処をどうやったら、こんなに違うものが出来るかも説明して頂けると今後のアドバイスがしやすいです。
なにかを参考にしたんでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#7

投稿記事 by samusu0905 » 9年前

>何処をどうやったら、こんなに違うものが出来るかも説明して頂けると今後のアドバイスがしやすいです。
>なにかを参考にしたんでしょうか?
実はあのコードは教材にも例として載っていたコードです。ですが、教材のコードをそのまま書いたとしても、練習問題が求めるプログラムとはかなり違います。今回、参考にしたコードは教材のコードです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#8

投稿記事 by softya(ソフト屋) » 9年前

そうすると「点数を格納したコードはこれです。」と言うのは意味不明です。
「教材にも例として載っていたコード」であって「点数を格納したコード」では無いですよね。
実際に点数を格納してませんし。何処ら辺から分からないのかもう少し整理してみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
asd
記事: 319
登録日時: 13年前

Re: 構造体配列の氏名を格納する方法

#9

投稿記事 by asd » 9年前

オフトピック
samusu0905 さんが書きました:softyaさん>>その回答は今丁度書き込みました。
あれ以上、書くことは有りません。
私は、本当にプログラムを作って、C言語を正しく学んでからゲーム制作に活用したいと考えています。
間違ったプログラムは学びたくないし、自分自身もまともな自作のプログラムを組みたいと考えています。
なるほど。あれ以上書くことがないということは、
どうやって解決したのかを提示する気はさらさらないし、自分さえよければそれでいいってことですね。
softyaさんも指摘していますが、点数の格納が構造体への格納なのか、別の配列への格納なのかよくわかりません。
提示されたソース中の変数名を交えて、どこに何を格納したいのか説明したほうがよいと思います。
#今回も「解決しました!(最終ソースは提示しない)」で終わりそうな予感
Advanced Supporting Developer
無理やりこじつけ(ぉ

アバター
ookami
記事: 214
登録日時: 13年前
住所: 東京都

Re: 構造体配列の氏名を格納する方法

#10

投稿記事 by ookami » 9年前

samusu0905さん、
「氏名を格納する方法が思いつきません。」とのことですが、
氏名は格納されていますよね。初期化の時に固定値で書かれているようなので。

「氏名を格納する」というのは、何か加工なり連結なりしてから格納するということでしょうか?

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#11

投稿記事 by samusu0905 » 9年前

softyaさん>>
>何処ら辺から分からないのかもう少し整理してみてください。
わかりました。もっと考えてみます。そして、整理してみます。

asdさん>>回答有難うございます。
>どうやって解決したのかを提示する気はさらさらないし、自分さえよければそれでいいってことですね。
いえ、そんなことはありません。コードの提示が多いだけです。ここではちゃんとコードの提示をします。

>提示されたソース中の変数名を交えて、どこに何を格納したいのか説明したほうがよいと思います。
>#今回も「解決しました!(最終ソースは提示しない)」で終わりそうな予感
迷惑かけてすみませんでした。何をどうしたいのかをちゃんと説明します。

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#12

投稿記事 by samusu0905 » 9年前

ookamiさん>>回答有難うございます。
>氏名は格納されていますよね。初期化の時に固定値で書かれているようなので。
氏名が格納されているって言ってますが、そのコードってこれですか?

コード:

struct Siken myclass[JUKENNO] = {
		{"田中",70, 80},
		{"鈴木",75, 69},
		{"村田",80, 70},
		{"太田",66, 80},
		{"加藤",70, 65}
	};
このコードが氏名を格納しているってことですか?
だとしたら、多分大丈夫だと思いますが。

>「氏名を格納する」というのは、何か加工なり連結なりしてから格納するということでしょうか?
練習問題には点数と氏名を格納して、氏名の一部(苗字)を入力したら、格納した点数(田中だったら70,80)を表示するだけなので、加工や連結はしません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#13

投稿記事 by softya(ソフト屋) » 9年前

> 練習問題には点数と氏名を格納して、氏名の一部(苗字)を入力したら、格納した点数(田中だったら70,80)を表示するだけなので、加工や連結はしません。

初期値で済むことをわざわざ格納と書くと思えません。そんな練習問題に意味があるとは思えませんので曲解ではないかと思われます。
この間からですが、問題を難しく考えるのを放棄しているように思えますよ。
オフトピック
プログラマーの資質(ライトスタッフ)として、こういう問題の時に最大限の工夫ができるかってのがあります。
最低限も工夫ができないなら、プログラミングしたくないんじゃないかと疑ったほうが良いです。
プログラミングしていて楽しいですか(ここ大事)?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
asd
記事: 319
登録日時: 13年前

Re: 構造体配列の氏名を格納する方法

#14

投稿記事 by asd » 9年前

samusu0905 さんが書きました:ookamiさん>>回答有難うございます。
>氏名は格納されていますよね。初期化の時に固定値で書かれているようなので。
氏名が格納されているって言ってますが、そのコードってこれですか?

コード:

struct Siken myclass[JUKENNO] = {
		{"田中",70, 80},
		{"鈴木",75, 69},
		{"村田",80, 70},
		{"太田",66, 80},
		{"加藤",70, 65}
	};
このコードが氏名を格納しているってことですか?
だとしたら、多分大丈夫だと思いますが。
上記の状態で、

コード:

printf("%s", myclass[0].name);
という処理を書けば、「田中」と表示されますよね?
これはmyclassという構造体配列に「田中」という名前が初期値として”格納”されていると思うのですが。。。
samusu0905 さんが書きました: >「氏名を格納する」というのは、何か加工なり連結なりしてから格納するということでしょうか?
練習問題には点数と氏名を格納して、氏名の一部(苗字)を入力したら、格納した点数(田中だったら70,80)を表示するだけなので、加工や連結はしません。
ということは、実行時にユーザーに名前や点数を入力してもらうことはないのでしょうか?
そうなると初期質問の”氏名の格納ができない”がやはり謎になってしまいます。

完成したプログラムを動かしたらどうなるのが最終地点なのかを明確にしたほうがよいと思います。
Advanced Supporting Developer
無理やりこじつけ(ぉ

アバター
ookami
記事: 214
登録日時: 13年前
住所: 東京都

Re: 構造体配列の氏名を格納する方法

#15

投稿記事 by ookami » 9年前

samusu0905さん、
「氏名の一部を入力したら」というのが新しく出てきましたが、最初の記事との関連が分からないので、①問題文の全文と、②現状でできているソースコード を載せてもらえますか?

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#16

投稿記事 by samusu0905 » 9年前

softyaさん>>回答有難うございます
そうですね。最初はプログラミングをしていて大変だったことは何回もありましたが、いくつものプログラムを組んでいるうちに、プログラミングが楽しくなっていました。プログラミングは楽しいですよ。

asdさん>>回答有難うございます。
>実行時にユーザーに名前や点数を入力してもらうことはないのでしょうか?
いえ、ユーザーには氏名を入力してもらいだけであって、点数は入力しない方針です。
氏名を入力したら、その氏名と同じ行に格納されている点数を表示するだけです。
あと、申し遅れましたが、softyaさんにも散々「プログラムは自分で考えるものだ」っと言われまして、
もう一度、練習問題で問われているプログラムをじっくり考えながら組んだら出来ました。

ookamiさんの質問の回答のところに出来上がったコードを載せます。心配しなくても大丈夫です。

ookamiさん>>回答有難うございます。
>「氏名の一部を入力したら」というのが新しく出てきましたが、最初の記事との関連が分からないので、①問題文の全文と、②現状でできているソースコード を載せてもらえますか?
質問とかなりそれてしまいますが、先ほどまでプログラミングをしていました。そしたら、できました。
softyaさんに言われたとおり、よく考えて、練習問題で問われていることを何度も確認しました。(大事な部分を何度も読みました)
よく考えてプログラムを組み込んだ結果、成功しました。出来たコードを載せます。

コード:

#define JUKENNO		5	//受験者
#define SUBJECTNO	2	//二科目

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


struct Siken{
	char name[32];
	int kokugo;
	int rika;
};

int drawline(void);

int main()
{
	struct Siken myclass[JUKENNO]= {
		{"田中",70, 60},
		{"鈴木",75, 66},
		{"村田",60, 70},
		{"太田",77, 75},
		{"加藤",40, 60}
	};

	int i=0, h=0, sum1[SUBJECTNO];
	char str[32];

	for(i=0; i < SUBJECTNO; i++)
		sum1[i] = 0;

	for(i=0; i < JUKENNO; i++)
	{
		sum1[0] += myclass[i].kokugo;
		sum1[1] += myclass[i].rika;
	}

	printf("氏名を入力してください---(田中, 鈴木, 村田, 太田, 加藤)\n");
	printf("------>");
	fgets(str, sizeof(str), stdin);
	str[strlen(str) - 1] = '\0';

	for(i=0; i < JUKENNO; i++){
		if(strcmp(str, myclass[i].name) == 0)
		{
			printf("%6d %6d\n",myclass[i].kokugo, myclass[i].rika);
		}
	}

	drawline();

	while(h==0){
		printf("終了する場合は,Enterを押してください。\n");
		scanf("%c", &h);
		return 0;
	}
	return 0;
}

int drawline(void)
{
	int i;

	for(i=0; i < 15; i++)
		printf("-");
	printf("\n");
	return 0;
}
出来上がったコードです。
これでもうルール的には大丈夫そうですね。

かずま

Re: 構造体配列の氏名を格納する方法

#17

投稿記事 by かずま » 9年前

samusu0905 さんが書きました: よく考えてプログラムを組み込んだ結果、成功しました。出来たコードを載せます。
よく考えたのなら、sum1 と while(h==0) が何のためにあるのか説明してください。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#18

投稿記事 by softya(ソフト屋) » 9年前

申し訳ないですが、仕様の理解力、プログラム構築力、テスト能力に著しく問題が有るとしか言えません。
これ「猫でも分かるC言語」の問題ですよね?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
asd
記事: 319
登録日時: 13年前

Re: 構造体配列の氏名を格納する方法

#19

投稿記事 by asd » 9年前

samusu0905 さんが書きました:softyaさん>>回答有難うございます
そうですね。最初はプログラミングをしていて大変だったことは何回もありましたが、いくつものプログラムを組んでいるうちに、プログラミングが楽しくなっていました。プログラミングは楽しいですよ。
申し訳ありませんが、あなたはプログラミングをしていないと思います。
そう言えてしまうほどまともにプログラムを組めていないです。
どこぞから答えを見つけてきて打ち込んで満足しているだけではないですか?
samusu0905 さんが書きました: asdさん>>回答有難うございます。
>実行時にユーザーに名前や点数を入力してもらうことはないのでしょうか?
いえ、ユーザーには氏名を入力してもらいだけであって、点数は入力しない方針です。
氏名を入力したら、その氏名と同じ行に格納されている点数を表示するだけです。
あと、申し遅れましたが、softyaさんにも散々「プログラムは自分で考えるものだ」っと言われまして、
もう一度、練習問題で問われているプログラムをじっくり考えながら組んだら出来ました。

ookamiさんの質問の回答のところに出来上がったコードを載せます。心配しなくても大丈夫です。
ええと、提示されたプログラムを見たところいろいろと突っ込みどころ満載なのですが、
*自分がやりたかったことを正しく説明できていなかったわけですね
 ○当初の質問でできなかったこと
  点数の格納はできたが、氏名の格納ができない

 ○実際にプログラム上で実現したこと
  入力された氏名に合致する点数を構造体配列に格納されているデータから探しだし、出力する

*提示されたプログラムはまたしてもどこぞからコピーしてきたものですか?
*当初困っていたことと、その解決策をきちんと説明してもらえますか?

これでプログラミングの勉強をできてると思われてしまうと、首をかしげてしまいます。
samusu0905 さんが書きました: 出来上がったコードです。
これでもうルール的には大丈夫そうですね。
かずまさんやsoftyaさんも指摘していますが、自分で考えたのならきちんと説明してください。
http://dixq.net/forum/viewtopic.php?f=3 ... 30#p122012
できる限り丁寧に説明するのではなかったのですか?

質問するのであればきちんと相手に伝わるよう、会話してください。
最初からトピックを見ていた一回答者として、当初何に困っていて、どのように解決したのかが全くわかりません。
オフトピック
「顧客が本当に必要だったもの」というイラストを見ている気分になりました・・・
Advanced Supporting Developer
無理やりこじつけ(ぉ

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#20

投稿記事 by みけCAT » 9年前

samusu0905さんには難しすぎると思いますが、AIZU ONLINE JUDGEというサイトを紹介しておきます。
ここで少しでもプログラミングを練習しようとしてくれれば、とても嬉しいです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#21

投稿記事 by samusu0905 » 9年前

かずまさん>>
sum1は特に必要ありません。while(h==0)は最後に終了するために作ったプログラムです。
while(h==0)が無いと画面が直ぐに閉じてしまうので実行結果がわかりません。それを防ぐためのプログラムです。

softyaさん>>
>これ「猫でも分かるC言語」の問題ですよね?
そうです。「猫でもわかる」っていう教材です。

asdさん>>
>*自分がやりたかったことを正しく説明できていなかったわけですね
そのとおりですね。どう説明すればいいのか迷ってました。
迷った結果、あの説明です。

>*提示されたプログラムはまたしてもどこぞからコピーしてきたものですか?
まず、ここでのトピックに載せたコードはどこからもコピーしてません。全部私が書きました。

>*当初困っていたことと、その解決策をきちんと説明してもらえますか?
始めに困っていたことは、氏名と同じ行に格納された点数を表示できなかったことです。
解決策は、まずfgets関数で氏名(str文字列)を習得します。そこにstrcmp関数を利用して入力した氏名(str文字列)が構造体配列の氏名欄に入っているか比較します。入っていればその氏名の行にある点数を表示する。
これが解決策です。

みけCATさん>>
時間があればやってみます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#22

投稿記事 by softya(ソフト屋) » 9年前

元の問題文がちゃんと示されていないですが、
「氏名・科目を格納する構造体配列を作り、氏名と点数を格納した後、検索する氏名を入力して点数を表示するプログラムを作れ」
な感じの問題(正確な問題文は不明)だと思うのですが違いますか?

だとしたら、
1.不正確に問題を読み取っている。= 構造体初期値を使っている。
2.プログラムに無駄というより不必要なコードが入っている。
が問題だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
asd
記事: 319
登録日時: 13年前

Re: 構造体配列の氏名を格納する方法

#23

投稿記事 by asd » 9年前

softya(ソフト屋) さんが書きました:元の問題文がちゃんと示されていないですが、
「氏名・科目を格納する構造体配列を作り、氏名と点数を格納した後、検索する氏名を入力して点数を表示するプログラムを作れ」
な感じの問題(正確な問題文は不明)だと思うのですが違いますか?
しかも途中の質問の中で「氏名の一部を入力したら」との記載もあることからたとえば、
「田中」「田中山」「中田」「中西」「中山」という5人がいた場合に、「中」で検索すると5人分点数が表示されそうな気もしています。

上記の推測通りであれば、
1.プログラム実行時に氏名、各科目の点数を記憶させていないのでNG
2.氏名の一部の入力では点数が表示されないのでNG
と、仕様を満たしていません。

プログラミングの勉強をするつもりがあるのならば、上記の仕様との乖離部分も自分で確認し、
どのように改修すればいいのかを考え、改修・評価を行ったうえで完成としてもらいたいものです。
Advanced Supporting Developer
無理やりこじつけ(ぉ

アバター
usao
記事: 1887
登録日時: 11年前

Re: 構造体配列の氏名を格納する方法

#24

投稿記事 by usao » 9年前

オフトピック
何でしょうね?
現状だとかやることの内容だとかいう事柄を 過不足無く
相手に伝わるように説明するのが圧倒的に苦手なのでしょうか?

(1)やること,目的,問題の内容
 何かの本に記載されている類の問題なのであれば
 その問題文そのものを提示したほうが話が早い気がします.
(2)その問題に対して,自身では 何をどうすればよいと考えているのか?(想定している処理手順など)
(3)その考えに従い作成した現状コード
(4)前期現状コードに関する説明.
 ・どの部分がどの手順に相当するのか?
 ・現状コードの問題点は何か?
  (手順のうち○○まではできたが,××の部分をどうすればいいかわからない,とか,
   自分では完璧なコードだと思うのに実行結果が伴わない,だとか)
(5)最低限何がわかれば現状を打破できる(と思う)のか?

…といった感じの事柄を 最初からセットで提示すればよいだけだと思うのですが.
(フォーラムルールにも質問用テンプレが用意されてますし)

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#25

投稿記事 by samusu0905 » 9年前

asdさん>>asdさんの内容でちょっとおかしいところがあります。(練習問題とは違っている部分)
>しかも途中の質問の中で「氏名の一部を入力したら」との記載もあることからたとえば、
>「田中」「田中山」「中田」「中西」「中山」という5人がいた場合に、「中」で検索すると5人分点数>が表示されそうな気もしています。
確かに「氏名の一部を入力したら」と書かれているので、中とか田とか山かなと思いますね。私も最初はそう思いました。ですが、私の予想だと「氏名の一部を入力」ということは、多分姓を入力するってことだと思います。
もし、本当にasdさんの言う「氏名の一部を入力したら」が中とか山とか大だったりしたら、もう一度プログラムを組み立てなおしますが。どうしますか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#26

投稿記事 by softya(ソフト屋) » 9年前

そもそも、問題文が正確に提示されていないのが憶測を呼んでいる原因ですので、ちゃんと過不足無く提示して下さい。
あと特定の人だけに返答するのはフォーラムルールの義務違反ですのでよろしくお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 構造体配列の氏名を格納する方法

#27

投稿記事 by samusu0905 » 9年前

usaoさん>>そうですね。私は元々、説明するのが苦手なほうです。
プログラムが書けても、実際に人に説明するときにどう説明すれば相手にうまく伝えることが出来るのか。そこが不安ですね。

softyaさん>>
>そもそも、問題文が正確に提示されていないのが憶測を呼んでいる原因ですので、ちゃんと過不足無く提示して下さい。
問題を提示することにします。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#28

投稿記事 by みけCAT » 9年前

samusu0905 さんが書きました:>そもそも、問題文が正確に提示されていないのが憶測を呼んでいる原因ですので、ちゃんと過不足無く提示して下さい。
問題を提示することにします。
じゃあ、なんですぐに提示しないのですか?
(これを書き込んだ時に手元に問題が無い、などの合理的な理由があれば仕方ないですが)

SBクリエイティブ:『猫でもわかるC言語プログラミング 第3版』ソースコードと練習問題解答
の解答"program91.c"を読むと、氏名の検索は部分一致で行っているようです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 構造体配列の氏名を格納する方法

#29

投稿記事 by みけCAT » 9年前

samusu0905 さんが書きました:私の予想だと「氏名の一部を入力」ということは、多分姓を入力するってことだと思います。
なぜ姓を入力するってことだと思ったのですか?
名を入力するのではいけないのですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
asd
記事: 319
登録日時: 13年前

Re: 構造体配列の氏名を格納する方法

#30

投稿記事 by asd » 9年前

出遅れた感はありますが、名指しされているので回答をつけます。
samusu0905 さんが書きました:asdさん>>asdさんの内容でちょっとおかしいところがあります。(練習問題とは違っている部分)
えーと、私はエスパーでもなければ、あなたの使用している教材を持っているわけでもないので、
練習問題とは違っていますよと意気揚々と指摘されても困ってしまいます。
というか最初から正確な問題文を提示してくれればいいのに・・・。
samusu0905 さんが書きました: 確かに「氏名の一部を入力したら」と書かれているので、中とか田とか山かなと思いますね。私も最初はそう思いました。ですが、私の予想だと「氏名の一部を入力」ということは、多分姓を入力するってことだと思います。
そうですか、では姓の部分一致検索でもいいです。
その場合入力する5人は「小田中」「田中」「田中井」「田中丸」「田中山」として、「田中」で検索したら結局5人分出力になりますね。
問題文とやらに氏名(姓)の完全一致するものだけを表示するという文言がない場合、同じことです。
#というか自分で氏名の一部云々言っていたのは何だったのでしょうか。
samusu0905 さんが書きました: もし、本当にasdさんの言う「氏名の一部を入力したら」が中とか山とか大だったりしたら、もう一度プログラムを組み立てなおしますが。どうしますか?
上記の通り姓に限定しても同じことなので、組み直しが必要かと思われます。
というか、私が出題者なら正解にはしません。
正確な問題が提示されないので何が正解かはわかりませんが、今までの流れから「氏名(姓)の部分一致も認める仕様」だと思っています。
オフトピック
というかですね、「どうしますか?」じゃなくて勉強するつもりなら応用としてやってみたらいかがでしょうか?
作ったプログラムを改良するのも勉強のうちだと思いますが、貴方自身のためのプログラミング学習ではないのですか?
それとも私のためにわざわざプログラムを作ってくれるのですか?
とりあえず教材があって問題文が記載されているのであれば、それをまず記載してください。
再度言いますが私はエスパーでも超能力者でも預言者でもないので、教えてもらっていない問題文や未来に質問者さんから提示される問題文とやらはわかりません。
Advanced Supporting Developer
無理やりこじつけ(ぉ

閉鎖

“C言語何でも質問掲示板” へ戻る