![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
以下のプログラミングができません。
どなたか分かる人はいませんか?
構造体studentを以下のように定義する。
struct student{
char name[20];
int kokugo, sansu, eigo;/* 各科目の点数を記録する変数 */
};
10人分のデータが配列に記録されている。合格者の人数を表示し,合格者が先にくるように配列の中身を並べ替える。その後、配列の内容を表示させる。合格の条件は少なくとも2科目以上で80点以上をとっていることとする。
10人分のデータはmain文のはじめに配列に入れておく。
No.3ベストアンサー
- 回答日時:
#include <stdio.h>
struct student{
char name[20];
int kokugo, sansu, eigo;
};
int judge(struct student st)
{
return (st.kokugo >= 80) + (st.sansu >= 80) + (st.eigo >= 80);
}
int main(void)
{
struct student st[10] = {{"a", 60, 60, 60}, {"b", 85, 60, 60}, {"c", 60, 85, 85},
{"d", 85, 60, 60}, {"e", 85, 85, 85}, {"f", 85, 85, 60},
{"g", 60, 60, 60}, {"h", 85, 60, 85}, {"i", 60, 60, 60},
{"j", 85, 85, 85}}, st0;
int i, j;
for(i = 0; i < 10; i ++){
printf("%s %d %d %d\n", st[i].name, st[i].kokugo, st[i].sansu, st[i].eigo);
}
for(i = j = 0; i < 10; i ++){
if(judge(st[i]) >= 2){
st0 = st[j];
st[j] = st[i];
st[i] = st0;
j ++;
}
}
putchar('\n');
for(i = 0; i < 10; i ++){
if(i == j) puts("---------------------*");
printf("%s %d %d %d\n", st[i].name, st[i].kokugo, st[i].sansu, st[i].eigo);
}
return 0;
}
No.1
- 回答日時:
構造体のソートで、合格条件に合っているかどうかを並び替えればよいかと。
80点以上の科目がいくつあるかカウントする変数を用意して、
kokugoが80点以上なら+1、
sansuが80点以上なら+1、
eigoが80点以上なら+1とやって、最後にカウントが2以上であれば、
「少なくとも2科目以上で80点以上をとっている」ということになるでしょう。
# 条件に「点数の高い順」とか追加されると多少手間は増えますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10人分の生徒の英語の点数{32,34,41,38,40,26,14,46,42,50} と数学の点 2 2022/05/26 21:31
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数から配列を返すには?
-
int i, int i[1];
-
配列の要素数に変数を入れたい...
-
C言語において、 配列要素をひ...
-
アドレス格納のための二次元配...
-
define で 配列
-
c言語 構造体
-
MFC - ダイアログボックスのPic...
-
コンボボックスでデフォルト値...
-
c言語
-
この変数名はわかりにくいですか?
-
C言語で重複組合せを全列挙
-
C言語(サイズ指定のない配列)
-
MFCのCArrayを使った二次元配列
-
構造体のextern方法
-
C言語から質問です。
-
構造体の配列 char *' 型は 'ch...
-
C#で構造体の配列を持った構造...
-
要素数・要素の値が未定の配列...
-
C言語についてです 5人のテスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報