アプリ版:「スタンプのみでお礼する」機能のリリースについて

今僕は、『if else』『while』『for』『switch』『配列(t[])』を知っているのですが、それで何かプログラムを作りたいのですが・・・思いつきません。
それを使ってできるプログラムが載っているサイトを教えてください。

それか、これらを使ってできる問題を言ってくれるだけでもけっこうです(それらだけでですよ!)

回答おねがいします。

A 回答 (17件中11~17件)

プログラミングの練習でしたらソートを書いてみたらいかがでしょうか。



「配列に入っている文字列の文字を降順および昇順にならべかえよ。」

どういった順番で作るか分からなければトランプを並べ替えて、手順を考えるとよいと思います。

多分そのうち、ソートも習うと思いますが・・・
ソートといっても「バブルソート、シェルソート、バイナリ(2分樹)ソート」など色々な方法があります。

どのようにしたらプログラムが上手に作れるようになるかというのは、設計に近い内容なので、もっと専門的に詳しく勉強してみたいならば「Cによるらくらく構造化設計國友義久 著 1992年2月20日 CQ出版 ISBN 4-7898-3308-9」(絶版または重版未定なので復刊どっとコムで投票を受け付けています)を図書館で捜して読んでみるよよいと思います。

まぁ、先をあせらず今の課題をじっくりと学習していってください。
毎日の積み重ねがあってこそ日の目を見る日がやってくることでしょう。
    • good
    • 0
この回答へのお礼

1992年ってけっこう昔ですよね。
けど、それでも紹介するということは、とってもいい本なんですね。
ぜひ、調べてみます。

回答ありがとうございました。

お礼日時:2007/07/14 22:55

> それらだけでですよ!



main関数は作れるとしても、配列以外の変数も、演算子も、標準関数も一切使えないのですよね。int型とリテラルは使えるのでしょうか?

むしろ、
「if文、while文、for文、switch文、および配列だけで、コンパイル、実行&終了可能なプログラムを書け。プログラムが何らかの役に立つかどうかは問わない」
という問題でも結構難度が高いと思います。
    • good
    • 0
この回答へのお礼

リテラルって何ですか?

いや何か問題とかないだろうかと思ったんですが・・・。それだけじゃ難しいんですね。
じゃあ、もっと覚えてからリベンジします。

回答ありがとうございました。

お礼日時:2007/07/12 06:57

あっ、分かりづらかったですか。


じゃあ、ちょっと変えて、
static char moji[13] = {
'0','2','1','0','3','1','0','4','0','9','4','0','2','3' };
int count[10];
の配列を用意してもらって。
moji配列中に'0'~'9'の文字の各々登場する回数をカウントしてcount配列に格納してください。'0'が5回とかカウントします。
ルール。
・charは習ってますよね?
・if文とswitch文は使用禁止です。
・for文かwhile文は使用可能。
以上です。
    • good
    • 0

No.1です。



プログラムには、ランダム関数という乱数(バラバラ数)を
導き出す関数があります。
それを使わないと、数字がばらばらに出ないので、ロト6を
占うには面白さが欠けます。
(RPGゲームの「何ポイントのダメージ!」とかはランダム
 関数です。)

よって、ランダム関数を利用するわけですが。
関数を書くと判りますが、コンピュータのランダム関数は、
毎回バラバラなりに同じ数字が返ってきます。
例えば、1回目に、「1,26,43,15,24,11」と返ってきたとき、
そのソフトを終了し再度実行するとまったく同じ「1,26,43,15,24,11」
という文字列が返ってきてしまいます。

そこで、現在の時刻、例えば「2007/07/12 0:25:43」のような
常に変わりゆく数字を利用し、上記のランダム関数に味付けとして
加えてやると、同じ数字が二度と出ません。
例えば、簡単な例では秒数を44で割った余りを足すだけでも
「1,26,43,15,24,11」それぞれに+幾つを足すのでバラけて見えます。
そういう意味で、日時を利用すると面白い数字が返ってくると
いうわけです。

なお、例に書いてあるように、数字の順番はバラバラで取れる
はずです。
ただ、ロト6を買うには1からの順番が書きやすいですよね?
ということは結果を並び変えたいですよね?
という意味で、1から43は配列を利用。
ゆとりがあれば、ソート関数で並び変えられるようにするわけです。

そのほか。
複雑なものになると、
・トランプのポーカー役、麻雀役
・自販機の釣銭計算
・曜日計算、週計算、時間計算
…ふと思いつくだけでも仰る構文を利用するアルゴリズムは
超大量にあります。
普段何気ないものでも結構難しいものですよ。
お試しください。
    • good
    • 0
この回答へのお礼

このプログラムは乱数を覚えないと組めませんよね・・・。というわけで、乱数を理解して、このプログラムを組んでみます。

回答ありがとうございました。

お礼日時:2007/07/12 01:07

> ”0103405067020”で登場する数字の数とはいったいどういうことなのでしょう?


コレは 0がいくつ 1がいくつ といった具合にこの文字列中の数字の種類を数えてくださいといった趣旨だと思います
    • good
    • 0
この回答へのお礼

あぁ、そうか!

そういう風に問題を理解できるようになりたい(頑

回答ありがとうございました。

お礼日時:2007/07/12 00:35

えーと、じゃあ問題を。


『if else』の問題。
変数aが1なら変数bを3に、変数aが2なら変数bを1にしてください。

『while』の問題。
入力された数値が、1~5以外だったら警告して、もう一度入力させるプログラムを作ってください。

『for』の問題。
1,3,5,7,9,11,・・・・変数nまでの数列をforを使って足してください。

『switch』の問題。
変数aが1,4,8,9なら変数bを2に、変数aが2,3,7なら変数bを1にしてください。それ以外は変数bを0にしてください。種類を分類します。

『配列(t[])』の問題。
文字列"0103405067020"でそれぞれ登場する数字の数を数えなさい。

この回答への補足

すいません。

配列の問題なんですが・・・

”0103405067020”で登場する数字の数とはいったいどういうことなのでしょう?

補足日時:2007/07/12 00:19
    • good
    • 0

分岐とループと配列を使いたいということであれば。



ロト6のあたりを占うソフトでも作れば如何でしょうか(笑)
1~43の数字を配列に入れ。
6個決まるまでループ。
時間の概念+ランダムでチョイスし、重複した数字をチョイスした
場合は再取得をします。

ソフトができれば、その番号のクジを買ってみて。
当たったら儲けもんですよね。(笑)

この回答への補足

すいません。
時間の概念ってどういう意味ですか?
ランダムは習っていないのですが・・・。

補足日時:2007/07/12 00:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!