C言語の質問です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
spark sheet

C言語の質問です

#1

投稿記事 by spark sheet » 15年前

初めまして。
私の通っている学校でC言語の課題が出たのですが、難易度が高く、初心者の私には到底分かりません。
出された以下のものなのですが、どれか一つでもいいので、解答を教えていただけるとありがたいです。
1.フィボナッチ数列のn番目の値を求めるプログラムを作れ。なお番号は0番目から数えるものとします。
2.長さnの単語が変数C0,C1,・・・,Cn-1に1文字ずつ入っています。この単語が前から読んでも後ろから読んでも同じ語(回文)であれば、変数pを1にし、そうでなければ0にするプログラムを作れ。
3.長さnの文字列が変数C0,C1,・・・,Cn-1に1文字ずつ入っています。この文字列中に含まれる、英大文字、英小文字、記号および数字の文字数をそれぞれ数えるプログラムを作れ。
4.長さnの文字列が変数C0,C1,・・・,Cn-1に1文字ずつ入っています。この文字列中の英大文字は英小文字に、英小文字は英大文字にし、それ以外の文字はそのままにしておくプログラムを作れ。
問題4のヒントとして掲載されていた文です。
同じアルファベットの大文字と小文字(例えば'A'と'a')は、文字コードの差がいくつになっているか考えなさい。文字コードの差は'A'と'a'では、'a'の方が'A'より値が大きいので、'a'-'A'で計算できます。また、この差はどの文字でも同じになります。
とりあえずまだたくさん問題はありますが、一気に質問するのはよくないと思うので4つまでにしておきます。解答よろしくお願いします。

sizuma

Re:C言語の質問です

#2

投稿記事 by sizuma » 15年前

丸投げ禁止ですよ。
コレだけ分からないならば、近くの友人や先生に聞いた方がいいと思います。
単位が取れればいいだけなら、2chの掲示板だと丸投げ答えてくれるんじゃないでしょうか?
まぁここでもどこかの答えたがりが答えるかもしれませんけど。

とりあえずフィボナッチ数列のプログラムは検索すればすぐひっかかると思いますよ。

asd

Re:C言語の質問です

#3

投稿記事 by asd » 15年前

回答じゃなくて解答をご希望ということであれば、出題した先生に聞いてください。
既に回答がありますが、自助努力をするつもりでないのであれば誰も助けてくれませんよ。

自分でがんばる気があるのでしたらどこまで出来ているのか教えてください。

1.C言語で書いたプログラムをコンパイルできる程度の能力
2.hello,world!を表示するプログラムが書ける程度の能力
3.条件分岐や反復処理が出来る程度の能力(if文とかfor文、while文など)

とりあえず4つ一気に聞くのではなくて出来そうなものを一つ選んで質問してください。

> 単位が取れればいいだけなら、2chの掲示板だと丸投げ答えてくれるんじゃないでしょうか?

何でこういうことを教えちゃうかなぁ・・・。
丸投げに対して解答をつけちゃう人は質問者が成長するチャンスを奪うことになるので
ひどいなぁと思いますが、丸投げできる場所を教えちゃうのも同類項と思ってます。

sizuma

Re:C言語の質問です

#4

投稿記事 by sizuma » 15年前

僕は教育者ではないので(本質的に)、向上心がない人に道徳を教えるつもりはありません。
お金を頂いて教えるときはそういうことも考えてその人の成長のために教えますけどね。


と、ここで教育論を語ってもしょうがないですし、確かに丸投げできる場所を教えるのも同類項ですね。
asdさんのように親切にここまで促すことはできないので、回答が返ってくれば、お任せします。


>何でこういうことを教えちゃうかなぁ・・・。
僕がこの掲示板以外見てないので、不愉快なやり取りするなら僕の見えないところでしてほしいな、という考えです。
こういうのを自己分析すると、自分のわがままさが身にしみますね。
スレッドの内容からずれてしまいましたね。
申し訳ありません

たかぎ

Re:C言語の質問です

#5

投稿記事 by たかぎ » 15年前

C言語ということですが、そのまま解答を書くといろいろ問題もあると思いますので、C++で作ってみました。
とりあえず1.だけです。

template <unsigned N>
struct fibonacci
{
static const unsigned value = fibonacci<N - 1>::value + fibonacci<N - 2>::value;
};

template <>
struct fibonacci<0u>
{
static const unsigned value = 0u;
};

template <>
struct fibonacci<1u>
{
static const unsigned value = 1u;
};

たかぎ

Re:C言語の質問です

#6

投稿記事 by たかぎ » 15年前

> 同じアルファベットの大文字と小文字(例えば'A'と'a')は、文字コードの差がいくつになっているか考えなさい。文字コードの差は'A'と'a'では、'a'の方が'A'より値が大きいので、'a'-'A'で計算できます。また、この差はどの文字でも同じになります。

処理系不明の状況では、上記は成立しません。

Dixq (管理人)

Re:C言語の質問です

#7

投稿記事 by Dixq (管理人) » 15年前

> spark sheetさん

こんにちは^^ 最近本当にご無沙汰の管理人です。
授業が難しくC言語にも興味を持てないみたいですね。
私もそうでした。
こんなHPを作っていますが、学生時代は友達の答えを見せてもらったりしても落第するという悲惨な有様でした。
「フィボナッチ?何それ?
そんな教授しか使わないような言葉知ったところで自分の人生に何の関係が・・。」
そんな感じでした。
なので、授業が解らず嫌になってしまう気持ちはよく解ります。

でもプログラミングって本当に楽しいものなんです。
今の苦しい壁を乗り越えて、プログラムの楽しさがわかれば、どんどん自分から調べたくなり、
自分から意欲的に勉強出来、面白くなってきますよ。

「一体こんなプログラム勉強して何が楽しいんだ・・」
と思うかも知れません。例えば、私はゲーム作りが趣味なのですが、私が作った
http://dixq.net/sr/よければご覧ください。
これも今習っているような事を勉強していけば作れるようになります^^

あんな悲惨な学生生活を送っていた私が寝ても覚めてもプログラムを書いているようになったのですから、
spark sheetさんもあきらめずに挑戦してみて下さい^^

・・なんて長い前置きはこの辺にして。

現在どの辺まで解っていますか?
どれ位解っているかによって答え方が違ってくると思います。
例えば

(1) char型aに文字'b'を変数に入れました。このaにはいった文字をして下さい
(2) char型の配列arrに"abcdea"を入れました。左から4番目の文字を表示して下さい。
(3) (2)のarrの長さを調べる関数を作ってください。
(4) (2)のarrの中身を反転し、"aedcba"にする関数を作ってください。
(5) (2)のarrに文字"a"が何回出てきたか数える関数を作ってください。
(6) a~z, A~Z, 0~9の文字コードを全て表示するプログラムを作ってください。

と問題があったら、どれが出来てどれが出来ませんか?

閉鎖

“C言語何でも質問掲示板” へ戻る