以下のプログラミングができません。
どなたか分かる人はいませんか?
構造体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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数から配列を返すには?
-
構造体のextern方法
-
MFC - ダイアログボックスのPic...
-
define で 配列
-
Cのエラー
-
C言語の配列のコピーについて質...
-
MFCのCArrayを使った二次元配列
-
C言語の穴埋め問題です
-
C言語から質問です。
-
コンボボックスでデフォルト値...
-
IPアドレスを配列に代入する方法。
-
fclose()でセグメンテーション違反
-
配列の要素数に変数を入れたい...
-
VBのByte配列をVARIANTに格納し...
-
DxlibのLoadgraph()を使ったsta...
-
関数が呼び出されるごとに文字...
-
RAW画像高速表示について
-
char*を初期化したいのですが
-
System.IO.Directory.GetFiles...
-
VBAのプログラムで、DIAG = 1# ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数から配列を返すには?
-
配列の要素数に変数を入れたい...
-
c言語
-
c言語プログラミング 等差数列...
-
define で 配列
-
構造体のextern方法
-
C#で構造体の配列を持った構造...
-
C言語において、 配列要素をひ...
-
MFC - ダイアログボックスのPic...
-
C言語の2次元配列 容量が大き...
-
2次元配列のマスを数える方法...
-
C言語 ファイルの指定された行...
-
Cのエラー
-
コンボボックスでデフォルト値...
-
C#で配列が空かを判定するには?
-
C#でのフィボナッチ数列
-
ポインタを使って構造体の配列...
-
C言語の課題が出たのですが自力...
-
MFCのCArrayを使った二次元配列
-
C言語の配列のコピーについて
おすすめ情報