質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

structure

このタグは、プログラム言語におけるデータ型structure(構造体)に関するタグです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

2015閲覧

構造体を使って、あるテストにおける合格者番号を表示させたい。

banana5

総合スコア1

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

structure

このタグは、プログラム言語におけるデータ型structure(構造体)に関するタグです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/06/16 02:46

実現したいこと

プログラミング初心者のものです。
C言語について質問させていただきます。
番号、クラス、テストの点数を配列に格納した構造体を作り、合格点を指定すると合格点以上の生徒の番号が表示され、各クラス何人の合格者が出たのかも表示させるプログラムを作成したいです。

ソースコード

#include <stdio.h> struct student { int num; char name[256]; int score; }; typedef struct student data; int main() { int low; int i; data data[] = { { 2,'A',97 }, { 5,'B',63 }, { 7,'A',74 }, { 9,'A',52 }, { 10,'B',88 }, { 13,'B',64 } }; printf("合格基準:\n"); scanf_s("%d", &low); printf("合格者\n"); for (i = 0; i < 6; i++) { if (low< (data[i].score)) { printf("%d\n", data[i].num); } else { } } }

###求める実行結果
合格基準:
70
合格者
2
7
10
A 2人, B 1人

困っていること

合格点を設定しても表示が全くされません。
Aクラス、Bクラスそれぞれに合格者の数を足す方法が分からないです。

補足情報(FW/ツールのバージョンなど)

Visual studio 2019を使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2020/06/16 02:59

> 番号、クラス、テストの点数を配列に格納した構造体 「{番号,クラス,テストの点数}のそれぞれが配列であり,構造体はそれら3つの配列をメンバとする」 という意味に取ったのですが,コードの雰囲気と違います. (私個人にしか起きない誤読であったならば申し訳ないですが)誤解されないような表記にできませんか?
banana5

2020/06/16 03:18

誤解を生んでしまい申し訳ありません。 質問者様の3つの配列をメンバとする構造体という認識で大丈夫です。
fana

2020/06/16 03:26 編集

いや,そうだとしたら, struct XXX //3つの配列をメンバとする構造体 { int num[100]; //要素数は知らんけども YYY class[100]; //要素数に加えて,型もわからんけども int score[100]; //要素数は知らんけども }; みたいなものを使う話になってしまうのですが,違いますよね.
banana5

2020/06/16 03:51

なるほど...。 今回の { 5,"B",63 }というような場合は何と説明すればよかったのでしょうか。 1つの配列にメンバが3つの構造体でしょうか。
fana

2020/06/16 03:58

学生1人に関するデータを表現するstruct studentがあって… そのデータとは{学生の番号,所属するクラスの名称(?),テストの点数}の3つで… 複数人の学生のデータがこの構造体の配列として与えられているときに… 合格点を入力されたら… …とか,まあ,淡々と説明すればよいのかも. (ま,ちゃんと回答付いているし,ちょっと余計な話だったかも)
banana5

2020/06/16 04:23

ご指摘ありがとうございます。 説明不足ですみません。 以後気を付けていきます。
guest

回答2

0

ベストアンサー

nameが、AかBか判断するコードを加えればいいです

投稿2020/06/16 03:02

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

合格点を設定しても表示が全くされません。

C

1 data data[] = { // '' -> "" 2 { 2,"A",97 }, 3 { 5,"B",63 }, 4 { 7,"A",74 }, 5 { 9,"A",52 }, 6 { 10,"B",88 }, 7 { 13,"B",64 } 8 };

投稿2020/06/16 02:58

編集2020/06/16 03:03
ozwk

総合スコア13528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問