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

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

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

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

Q&A

2回答

775閲覧

1位の人名を求めるプログラム

Ryo-chan

総合スコア9

C

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

0グッド

0クリップ

投稿2020/11/15 10:52

4日間に及ぶゴルフ大会に参加したプレーヤーの成績をすべて読み取り、最上位の成績と、そのそれぞれの成績を収めたプレーヤーの名前を知るためのプログラムを作成しております。
現状合計スコアから最上位の成績と人名を求めるプログラムは作成済みですが、
4日間のそれぞれのスコアを合計して、最上位の成績と人名を知るためのプログラムが作成できずに困っております。

実行例
標準入力

Dylan Long 71 73 72 72

Liam Hughes 69 71 70 70

Oliver Gray 70 69 73 73

標準出力

280

Liam Hughes

標準入力

Dylan Lopez 72 73 71 71

Owen Scott 71 68 69 71

Nathan Hall 72 69 68 70

James Torres 71 70 71 72

標準出力

279

Owen Scott

Nathan Hall

以下、現状作成しているプログラムとなります。

c

1#include<stdio.h> 2int main(void){ 3 4 char firstname[100][50]; 5 char familyname[100][50]; 6 int score[100]; 7 int n,m; 8 int bestscore; 9 10 for(n=0;(scanf("%s %s %d",firstname[n],familyname[n],&score[n])>0);n++){ 11 if(n==0) 12 { 13 bestscore=score[n]; 14 } 15 if(score[n]<bestscore) 16 { 17 bestscore=score[n]; 18 } 19 } 20 21 printf("%d\n",bestscore); 22 for(m=0;m<n;m++){ 23 if(bestscore==score[m]) 24 { 25 printf("%s %s\n",firstname[m],familyname[m]); 26 } 27 } 28return 0 ; 29}

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

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

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

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

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

kazuma-s

2020/11/17 03:20

タイトルが「1位の人名を求めるプログラム」なのに、実行例は最下位の人が表示されています。 > 現状合計スコアから最上位の成績と人名を求めるプログラムは作成済みですが、 その作成済みのプログラムを質問に追記してください。
guest

回答2

0

次の修正で期待する結果が得られますか?

diff

1 int bestscore; 2+ int s[4]; 3 4- for(n=0;(scanf("%s %s %d",firstname[n],familyname[n],&score[n])>0);n++){ 5+ for (n = 0; scanf("%s%s%d%d%d%d", firstname[n], familyname[n], 6+ s, s+1, s+2, s+3) == 6; n++) { 7+ score[n] = s[0] + s[1] + s[2] + s[3]; 8 if(n==0)

投稿2020/11/17 03:29

編集2020/11/17 03:30
kazuma-s

総合スコア8224

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

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

Ryo-chan

2020/11/17 11:58

ご連絡ありがとうございます。 しかし、やってみましたが下記のようなエラーが出ました。 kadai_6-1.c: In function 'main': kadai_6-1.c:9:1: error: stray '\343' in program     int s[4]; ^ kadai_6-1.c:9:1: error: stray '\200' in program kadai_6-1.c:9:1: error: stray '\200' in program kadai_6-1.c:9:1: error: stray '\343' in program kadai_6-1.c:9:1: error: stray '\200' in program kadai_6-1.c:9:1: error: stray '\200' in program kadai_6-1.c:9:1: error: stray '\343' in program kadai_6-1.c:9:1: error: stray '\200' in program kadai_6-1.c:9:1: error: stray '\200' in program kadai_6-1.c:9:1: error: stray '\343' in program kadai_6-1.c:9:1: error: stray '\200' in program kadai_6-1.c:9:1: error: stray '\200' in program
Ryo-chan

2020/11/17 12:01

ちなみに、修正したプログラムは下記のとおりです。 ``` #include<stdio.h> int main(void){ char firstname[100][50]; char familyname[100][50]; int score[100]; int n,m; int bestscore;     int s[4]; for (n = 0; scanf("%s%s%d%d%d%d", firstname[n], familyname[n],s, s+1, s+2, s+3) == 6; n++) { score[n] = s[0] + s[1] + s[2] + s[3]; if(n==0) { bestscore=score[n]; } if(score[n]<bestscore) { bestscore=score[n]; } } printf("%d\n",bestscore); for(m=0;m<n;m++){ if(bestscore==score[m]) { printf("%s %s\n",firstname[m],familyname[m]); } } return 0 ; } ```
kazuma-s

2020/11/17 12:26

kadai_6-1.c:9:1: error: stray '\343' in program これは、9行目に全角文字があるというエラーメッセージです。 "\343\200\200" は、文字コードが UTF-8 で全角スペースです。 半角スペースまたはタブに修正してください。 コメントにコードを書くと見にくいので、質問を編集して追記してください。
guest

0

読込みが、

scanf("%s %s %d",firstname[n],familyname[n],&score[n])

に対し、

Dylan Long 71 73 72 72

では、数が合わないです。 for()の2回目以降が、不正になると思われます。

例えば、
scanf("%s %s %d",firstname[n],familyname[n],&score[n], &n1, &n2, &n3) のようにして、 後の3つを読み捨てするとか? (n1, n2, n3 は別途、定義) もし、残りの数値も対象とするなら、それも読みましょう。

投稿2020/11/15 11:05

編集2020/11/15 11:09
pepperleaf

総合スコア6383

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

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

Ryo-chan

2020/11/16 14:40

回答いただきありがとうございます。 お手数ですが、実際にプログラムを作成いただくことは可能でしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問