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

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

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

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

Q&A

解決済

8回答

1789閲覧

sage

ghosts

総合スコア11

C

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

0グッド

0クリップ

投稿2016/05/30 08:05

編集2016/05/31 03:22

///////////////////////////////////////////////////////////////////////////////////
しめます。

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

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

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

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

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

ghosts

2016/05/31 03:14 編集

HogeAnimalLover

2016/05/30 11:36

少なくとも条件の上二つだけならば難しくないはずだよ。これもダメとなるともう丸投げでしかないよ。
otn

2016/05/30 15:12

「この問題文ですら何を言ってるのか、何をしたらいいのかまったくわからない状態です。」ということであれば、「私には無理です」とギブアップするのが正しいです。
guest

回答8

0

この問題文ですら何を言ってるのか

プログラミングより国語を勉強したほうが良いのかもしれませんね。学習の基礎ができてないと思われるので、小中高の算数や数学の問題を解くことからやり直したほうが良いのでは?

と、まあ突き放すのも何なのでどう考えたら良いのかヒントだけ。
まずは問題文。

  1. 「標準入力」は理解してますか?してないのなら調べましょう。
  2. 「乱数で生成」乱数の生成の仕方はわかりますか?わからないのなら調べましょう。
  3. 「クイックソート」は理解してますか?してないのなら調べましょう。
  4. 「再帰的呼び出し」は理解してますか?してないのなら調べましょう。

上記の4つをクリアしてからでないとこの問題をこなすことはできません。
4つが理解できたということは、取り敢えず問題文についてはOKですよね。
じゃあ、次はC言語のプログラムの基本構成です。main()関数やサブルーチンは学習しましたよね?
プログラムがどのように実行されるかも理解してますよね?
であれば、プログラムは作れるはずです。あとは数学の問題を解くの同じです。

投稿2016/05/30 08:28

PineMatsu

総合スコア3579

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

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

0

プログラミングの技術において、調べてわからないことは結構少ないですよ。
英語のページも読めるならなおさらです。
調べ方がわからないのであれば、以下の感じで調べられます。

【標準入力について】

  • 検索キーワード

c言語 標準入力

  • 使えそうなサイト

http://www.itsenka.com/contents/development/c/standardio.html

【範囲指定の乱数について】

  • 検索キーワード

c言語 乱数 範囲

  • 使えそうなサイト

http://linuxserver.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/c-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/rand

【クイックソートについて】

  • 検索キーワード

c言語 クイックソート 再帰

  • 使えそうなサイト

http://www1.cts.ne.jp/~clab/hsample/Sort/Sort9.html

投稿2016/05/30 08:58

koufukurairai

総合スコア64

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

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

0

こんにちは。

・関数の再帰的呼び出しを使う

この条件は非常に難しいです。再帰呼び出しは永遠に使えない人もいるくらい難しいです。
まして「c言語は本当に苦手で、この問題文ですら何を言ってるのか」の方が1~2週間程度で使えるようになることは「あり得ない」と思いますし、再帰呼び出しより先に学ぶべきことが多数あります。
最後の条件は忘れて解いてみませんか?

以下ヒントです。(gccかclangを使っていると仮定します。もし、Visual Studioならそう言って下さい。)

n個の整数配列 int data[n];(これはVisual Studioでは使えません。)
nは標準入力から与える scanf()関数が使えます。(scanfは流石に知ってますよね?)
n個の整数は乱数で生成する rand()関数が使えます。
クイックソートを用いる qsort()関数が使えます。

お薦めの手順は、下記です。

nを入力する

n個の整数配列を定義する

n個の整数配列に1~100を設定する

n個の整数配列をソートする

ソートした結果を出力する。

途中2箇所程、for文を使います。

投稿2016/05/30 09:41

Chironian

総合スコア23272

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

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

catsforepaw

2016/05/30 11:30

> クイックソートを用いる qsort()関数が使えます。 気になったので念のため指摘しておきます。 C標準ライブラリのqsort関数は、アルゴリズムは規定していないのでクイックソートとは限りませんよ。実際にはクイックソートで実装されていることが多いようですが、仕様に明記されていない以上、それを前提とすべきではないと思います。
Chironian

2016/05/30 12:53

catsforepawさん。 あらら、ググッたらクイックソートとでてきてたので、てっきりそうだと思ってました。 「glibcのqsort()はクイックソートではない」なのですね。 http://qnighy.hatenablog.com/entry/20090430/1241054709 訂正ありがとうございます。 ghosts_apuさん、すいません。 提出までの期限が短いようでしたら、クイックソートも断念してqsortを使うしかないかもしれません。逆に、もし2~3週間、この問題に注力できるようでしたら、トライすると力がつきますよ。
guest

0

クイックソート
ウィキペディアすごいな。めちゃくちゃ丁寧に書いてあった。

投稿2016/05/30 08:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

まずC言語から離れて、
「数値を標準入力から与える 」とはどういう事か?
「整数は乱数で生成する」とはどういう事か?
「クイックソートを用いる」とは?・・・・

余談:下の2つの条件は、「クイックソートを再起を用いて実装せよ!」と思えてならないのですが・・・

投稿2016/05/30 12:14

cateye

総合スコア6851

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

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

0

おそらく学校や訓練機関、もしくは社内での研修中でC言語を勉強中なんだと思います。

であれば、

与えられた教材のこれまでの問題を1から順番に解き直していって、
分からないところを講師役の人に質問する

というのが最速かつ確実な方法だと思いますよ。
現時点ではインターネットで検索しても混乱するだけだと思います。

何らかの理由でそれが出来ないのであれば

  • どういった経緯で勉強しているのか
  • 教材はどのようなものを使っているのか
  • 環境はどのような環境なのか
  • なぜ質問できないのか
  • ここまで解けた問題は何があるか?

くらいまでは質問に盛り込むと、良い回答があるかもしれませんが、
カリキュラムを組んでいる講師以上の教育効果を上げるのは困難でしょうね。

投稿2016/05/30 11:52

tanat

総合スコア18713

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

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

0

C言語が苦手というよりロジックやフローチャートの問題でしょう。
どの言語か迷うくらいに言語自体はよく似ていますよ。

投稿2016/05/30 10:26

maiko0318

総合スコア876

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

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

0

まずは出来ているところまでのソースを提示しましょうよ。
丸投げはいかんですよ。

処理としては最初の3つは、その順番通りにすればいいですよね。
問題は再帰呼び出しですが、私には効果的な使いどころが思い浮かびませんでした…。
無理やり使うとしたら、乱数生成のところか、書いてないですが、最後にソート結果を出力するときか…。

--
(訂正)
クイックソートはqsortを使うのではなく、アルゴリズムを自力で作成するということをte2jiさんの回答で気づきました。
私の回答は忘れてください。

投稿2016/05/30 08:14

編集2016/05/30 08:17
ttyp03

総合スコア16998

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問