• 締切済み

構造体と関数について質問です

私はC言語の勉強を始めて2ヶ月の初心者です。 課題に取り組んでいるのですが、まったく進めないので助けていただきたいと思い質問しました。 課題 A君B君C君の3人の国語・算数・理科・社会の点数を入力し、それぞれの合計点と平均点、1番高かった教科を表示する。 というものです。 構造体はstruct subjectData member[3]で 関数は入力をする関数と合計点を出す関数平均点を出す関数最高点を出す関数を使ってということなんですが、まったくわからなく手がつけられないもので、質問させていただきました。 参照渡しを使えということも言われ、参考書をみて戦っているんですがどうも理解ができません。 解説とソースを載せていただけたら助かります。 どなたかよろしくお願いします!

みんなの回答

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>解説とソースを載せていただけたら助かります。 いいえ。ソースを載せるのはあなたです。 まずは問題の指示 - 構造体だどうとか、参照渡しがこう - は置いておいて、 そのまま課題をソースコードして補足にどうぞ。

t-drums
質問者

お礼

すみません。調べたら解けました。 今後は質問の仕方を気をつけます。

関連するQ&A

  • エクセルの質問です。

    エクセル2003を使用しています。 元データには   A   B(国語点数) C(算数点数) D(社会点数) E(理科点数 F(英語点) G(合計) 1 名前(1)   90        85        70       100      20    365 2 名前(2)   85        20        40       70       50    265    3 名前(3)   50        90        60       70       80    350 というデータを     A    B    C 1 名前(1)  国語  90 2        算数  85 3        社会  70 4        理科  100 5        英語  20 6        合計  365 7 名前(2)  国語  85 8        算数  20 9        社会  40 10       理科  70 11       英語  50 12       合計  265       ・       ・       ・ となるように表示していきたいのですが… ただのセルのコピーでは人が連続してコピーできませんでした。 何かいい方法があるかたはご教授ねがいます。 よろしくお願いします。   

  • C言語 構造体配列について

    6人分の小テストの点数を記録し,平均値などを計算するプログラムを作成している. 以下の手順と条件に従ってプログラムを作成. 手順 (1) 氏名(name[100], char 型) と点数( score , int 型) をメンバにもつ構造体「struct_TEST」を(main 関数の外で)定義. (2) struct _TEST 型構造体配列 element[6] を定義. (3) キーボードから氏名(ローマ字でよい)と点数を入力する処理を6 回繰り返す. (4) 平均点を計算して画面表示. (5) 最高点を出した人の名前と点数を画面表示. (6) 平均点に満たない人の名前と点数を画面表示. 条件 (3)~(6)の処理には以下に示す関数を利用する. (3) ・・・ 氏名と点数を入力する処理をn 回繰り返す関数 void input_score( struct _TEST *a, int n ) (4) ・・・ n 個の構造体配列に対して平均を計算し,平均点を返す関数 double calc_ave( struct _TEST *a, int n ) (5) ・・・ n 個の構造体配列に対して最高点を算出し,そのユーザの配列番号を返す関数 int calc_max( struct _TEST *a, int n ) (6) ・・・ n 個の構造体配列に対して平均点に満たない人の名前と点数を画面表示する関数 void show_under_ave( struct _TEST *a, int n ) C言語の構造体が良く分かっていません。 こういった条件が多いと考えづらく分からなくなります。 考えても分かっていないので困っています。 誰かすみませんが解答を教えて下さい。

  • 五年生の宿題で困ってます

    息子の算数の平均の問題です。教えてください。 国語と算数と理科のテストをした 3教科の平均点は82点 国語と算数の平均点は 80点 算数と理科の平均点は85点 国語と算数の合計点は何点か? 算数と理科の合計 点は何点か? 理科は何点か? 国語は何点か? 算数は何点か? と言う問題を子どもにどう教えたらいいか困ってます。 よろしくお願いします

  • 構造体

    プログラミングの授業で構造体を習ったのですが、課題がよく分からないので質問させていただきます。その課題ですが、 複素数を表す構造体を、 struct complex{float r;(実部)float i;(虚部)}; の形で定義したとして、2つの複素数を入力し、その2つの絶対値の2乗、和、差、積、商を求めるプログラムを作るというものです。 ただし、条件として、 複素数を入力する関数void inputComp(struct complex*c)、複素数をa+biのような形に表示する関数void printComp(struct complex*c)、複素数の絶対値の2乗を関数値として返す関数float asqrComp(struct complex*c)を作成せよというのがあって困っています。 条件がなければprintfを多用してできないこともないでしょうが、条件を満たすプログラムを教えてください。

  • 息子の宿題

    小5の算数の宿題で、恥ずかしながらどーしてもわからない問題があるので回答よろしくお願いします。 ”国語、社会、算数、理科のテストをしました。国語、社会、理科の3つのテストの平均点は86点ですが、算数を入れた4つのテストの平均点は85点になります。算数の点数は何点でしょうか。”

  • 平均点の問題です。よろしくお願いします。

    いつもありがとうございます。 今日は算数の問題でわからない問題があったので、よかったら教えてください。 国語と算数の平均点が79点で、理科と国語の平均点が83.5点、理科と算数の平均点は89.5点でした。 国語と算数と理科の平均点は何点ですか。 というのが問題です。 やり方がわからなかったのですが、問題でわたしがわかったことは、 国語と算数で158点、国語と理科で167点、算数と理科で179点で、 国語と算数の点の差が12点で算数のほうがよくて 理科と国語では理科のほうが21点よくて 算数と理科では理科のほうが9点よかったことだけです。 あとはぜんぜんわかりません。 もしよかったら教えてください。 よろしくお願いします。

  • プログラミングの構造体の課題が出たんですが・・・

    プログラミングの構造体の課題が出たんですがさっぱりわかりません。どなたかわかる方お願いします。 次の仕様に従って、生徒の科目得点から平均点と評価を求め、評価結果の画面を表示するプログラムを作成しなさい。 与えられた仕様 手順 1. プログラムに読み込むデータファイル名は、コマンドラインで入力する。 2. データファイルには、以下のような形式で1行目に学生数、2行目に項目名(学生番号、国語、数学、理科、英語)が、3行目以降に学生番号と各科目点数が格納されている。 5 学生番号 国語 数学 理科 英語 1001 85 74 63 90 1002 78 65 70 62 1003 89 92 88 76 1004 32 48 66 15 1005 92 76 81 98 3.下記の 構造体を用いてデータの格納を行い、平均点と評価も格納できるようにすること。 struct seiseki { /* 成績データ */ int no; /* 学生番号 */ int ten[4]; /* 点数 */ double avg; /* 平均点 */ char hyouka; /* 評価 */ }; 4. 処理手順は、次のとおりとする。 1. ファイルからデータを読み込むこと。 2. 各人の 4科目の平均点を求め、構造体に格納すること。 3. 各人の評価を求め、構造体に格納すること。尚、4段階の評価基準は上記のとおり。 平均点 評価 80点以上 'A' 70点以上 80点未満 'B' 60点以上 70点未満 'C' 60点未満 'D' データファイルは空白で区切られています。 こうすれば解けるよ、とかこのサイト見てやればできるよ等の 回答ではなく、この問題の答えを教えてくれたらうれしいです。 自分で理解してやらないと~とか考えてやらないと~等の回答もしないでください。 わがまま言ってすいませんが、わかる方お願いします。

  • C言語 構造体でつまずいています

    以下、番号と点数を入力して構造体配列に入力し、番号に0が入力されたら、入力処理をやめ、平均点を表示するプログラムです。  今のコードでは、最初から番号に0を入力すると、0除算になりエラーになります。どうすれば良いのでしょうか? #include <stdio.h> #define MAX 50 //配列の要素数を定義 int count=0; //グローバル変数 struct data { //構造体の定義 int num; //メンバの宣言 int ten; }; void nyuryoku(struct data *); //プロトタイプ宣言 float heikin(struct data *); //プロトタイプ宣言 void main() { struct data score[MAX]; //構造体の宣言 printf("**学生番号/点数入力**\n"); printf("\n"); nyuryoku(score); //nyuryoku関数呼び出し printf("\n**以上%d名の平均点:%0.1f点**\n",count,heikin(score)); //heikin関数の戻り値表示 } //nyuryoku関数 //機能:構造体配列にデータを入力する void nyuryoku(struct data *pd) //仮引数pdに構造体ポインタが渡る { int i; for(i=0;i<MAX;i++){ printf("学生番号>>"); scanf("%d",&pd->num); if(pd->num==0){ //学生番号に0を入力するとループを抜ける break; } printf("点  数>>"); scanf("%d",&pd->ten); count++; //人数のカウント pd++; //構造体配列を一つずらす } } //heikin関数 //機能:構造体配列の点数の平均を計算、戻り値として返す float heikin(struct data *pd) //仮引数pdに構造体ポインタが渡る { int i; int sum=0; float ave=0; for(i=0;i<MAX;i++){ if(pd->num==0){ break; } else{ sum+=pd->ten; //点数を加算 pd++; } } ave=(float)sum/count; //平均値を求める return(ave); //平均値を戻り値として返す }

  • 小学5年生の算数の平均の問題

    子供に算数の問題の解き方を聞かれましたが、全く解らず困っています(;_;) 解る方がいらっしゃるなら教えてください。 問題 国語と算数と理科のテストをしました。 国語と算数と理科のテストの平均は82点です。 国語と算数のテストの平均は80点です。 算数と理科のテストの平均は85点です。 問題 (1)理科は何点でしょうか? (2)国語は何点でしょうか? (3)算数は何点でしょうか? と言う問題です。 よろしくお願いします。

  • 構造体から平均点を求める方法

    構造体が(名前、数学の点数、英語の点数、理科の点数)という形で、100人分のデータがあった場合。 この構造体を関数で受け取り、各科目の平均点をパラメタで返し、全体の平均を復帰値にするにはどのような関数にすれば良いのでしょうか。参考のソースを示していただけると助かります。よろしくお願いします。