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

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

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

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

Q&A

3回答

312閲覧

C言語のプログラムができないので、Cのソースコードを教えてください!!

退会済みユーザー

退会済みユーザー

総合スコア0

C

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

0グッド

0クリップ

投稿2020/02/02 05:51

私は今問題を解こうとして、C言語を使ったプログラミングを作ろうとしているのですが、どのように
実際のソースコードを作ればいいのかがわかりません。なので以下の問題をとくプログラムのソースコードを教えてください!!(なるべくかんたんなソースコードがいいです。)

問題

C.txtには空白区切りで重複のない1,000,000個の整数が書かれている。各整数は0以上1,000,000,000以下である。C.txtに書かれている整数の中で100番目に大きい値を求めよ。

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

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

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

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

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

guest

回答3

0

残念ながら、コード作成依頼は受けつけていません

投稿2020/02/02 06:02

y_waiwai

総合スコア88042

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

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

0

重複のない1,000,000個の整数

同順100番目が二つ以上あったりしない、100番目は一個しかないという意味かな。

各整数は0以上1,000,000,000以下

32bitのint型で問題無し。

fanaさんのご指摘通り、100席あれば十分だと着想するのが題意のような気がする。それなら比較的少量のメモリで済む。

もうひとつ。100個のデータは配列で良いのかも問題だと思う。配列でも実現できるが効率が悪いのではないか。私ならリスト構造にしてつなげる。最も弱いヤツがリストの先頭にいて、リストの奥に行くほど強いヤツになるよう、リストを維持する。

投稿2020/02/05 15:41

編集2020/02/05 15:47
rubato6809

総合スコア1382

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

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

0

1000000要素の配列を定義し、そこにファイルから数値をすべて読み込む。まず、一番小さい要素を検索し、それを変数minに保存する。
次に、一番大きい要素を検索し、それをminで上書きする。これを99回繰り返す。
最後に、一番大きい要素を検索する。

困難は分割せよ。(『握手』井上ひさし) デカルトのこの言葉、中学校で習いましたよね? 何が分かれば解決するのか、考えてみなければプログラムは書けませんよ。

投稿2020/02/04 03:11

majiponi

総合スコア1722

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

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

fana

2020/02/04 03:34

100席しかない電車に一人ずつ乗り込もうとする状況を考える. 空席がある場合はそこに座るが,満席のときにはそのとき電車内で最も弱い奴と勝負し,勝てばその席を奪える.(負けた者は車外に放り出される.) 最後の1000000人目が乗り込んだ(あるいは放り出された)時,車内には最強の100人が乗っている状況になるので,その中で最弱の奴が100番目に強い奴. …みたいな話の方がわかりやすいかも.
majiponi

2020/02/05 16:20

まあそれでもいいのですが、折角の質問、本人の想像以上に問題解決へのアプローチがあって、どれでも解けるけど最良の方法は何だろう、と考えさせれば、少しは丸投げ癖もなくなるかなあと。 もし質問者が私の回答の意図を掴めてないなら、1位のやつを順々に取り除けばいつか100位のやつが出てくる、という要約だけ。
rubato6809

2020/02/06 02:44

そうなんですよね。最初から100席あれば済むと気づく筋の良い人もいますが、まずはmajiponiさんの手順で答えを出せそうだとイメージできることが基本だと思うので。 私の回答はそこをベースに書いてますから。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問