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

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

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

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

Q&A

解決済

1回答

643閲覧

過去問について C言語

ta-9

総合スコア11

C

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

0グッド

0クリップ

投稿2020/08/10 00:24

編集2020/08/10 00:25

###やりたい事
ICPCの過去問について解いて頂きたく、宜しくお願い致します。
URL→ https://icpc.iisf.or.jp/past-icpc/domestic2015/contest/all_ja.html
Problem Aです。

※かなり難しいと思いますが解ける方がもしいらっしゃいましたら宜しくお願い致します。

以下のコードでは出力が
3
4
2
2
3
3 ←ここが2ではなく3になってしまいます…

c

1#include <stdio.h> 2#define MAXM 200 // 受験者数の最大値 3int m; // 受験者数 4int nmin; // 最小合格者数 5int nmax; // 最大合格者数 6int p[MAXM]; // 各受験者の得点(降順)p[i-1] = Pi 7int main(void) 8{ 9 for(;;){ 10 int i, n; // n = 合格者数 11 int gap; // これまでに求まっているギャップ 12 int nans; // これまでに求まっている合格者数 13 scanf("%d %d %d", &m, &nmin, &nmax); // 受験者数、最小/最大合格者数の入力 14 if(m==0 && nmin==0 && nmax==0) break; // 全て 0 なら終了 15 for(i=0; i<m; i++) 16 scanf("%d", &p[i]); // 点数を読み込む(降順にソート済み) 17 gap = 0; 18 // nmin <= n <= nmax なる各 n に対して順にギャップを計算 19 // 合格者数が n の時のギャップは、p[n-1]-p[n] となる。 20 for(n=nmin; n<=nmax; n++){ 21 if(p[n-1]-p[n] >= gap){// これまでのギャップ以上なら 22gap = p[n-1]-p[n]; // そのギャップを記憶し 23nans=n; // n を暫定合格者数とする 24 } 25 } 26 printf("%d\n", nans); // 答えの出力 27 } 28 return 0; 29}

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

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

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

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

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

SHOMI

2020/08/10 00:35

2になりましたが…
Daregada

2020/08/10 00:47

同じく、「以下のコード」そのままで、出力の最後が「2」になるのを確認した。
ta-9

2020/08/10 02:04

ご回答ありがとうございます。 えっ、そうですか!? 自分の方では出力結果が 3↵ 4↵ 2↵ 2↵ 3↵ 3↵ 1↵ 1↵ ・ ・ ・ という感じてす(…はずっと1)
Daregada

2020/08/10 02:24

与えるデータのほうが間違っているのでは? 末尾の「0 0 0」が抜けているとか。
ta-9

2020/08/10 02:38

入力データの方は正しく入っていました。。。
Daregada

2020/08/10 02:41

入力データはどのようにしてプログラムに読み込ませていますか?
SHOMI

2020/08/10 02:54 編集

0 0 0の入力で終了するはずなのに1が続くという時点で入力間違えているのでは
ta-9

2020/08/10 06:14

みなさん失礼いたしました。 入力の一部を間違えていました。 ありがとうございました。
guest

回答1

0

自己解決

質問に記載済みのコードで解決

投稿2020/08/10 06:15

ta-9

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問