c言語自由課題

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

c言語自由課題

#1

投稿記事 by n65 » 2年前

C言語の自由課題で、関数を使ったプログラムを作成する課題が出されました。
ただし数学関数や文字に関する関数は使わず独自の関数を使用する。というものです。課題の意味すらよく理解しておらず、1から教えて頂きたいです。丸投げで申し訳ありません。
例では、経過時間を計算するプログラムが出されていました。その例も難しいものではないと思うので、複雑でなく簡単なものでお願いしたいです。(初心者用?)

アバター
usao
記事: 1887
登録日時: 11年前

Re: c言語自由課題

#2

投稿記事 by usao » 2年前

要は,「自分で何か関数を作ってそれを使え」って話でしょう.きっと.

何か入力値を用いててきとーな計算を行うプログラムにおいて,入力値を1個入力する部分を関数にするとかしとけばよいのでは?

・数値を入力させる処理が実装されている関数であって,
・入力された値が特定の範囲に入ってない場合にはその旨を表示して入力をやり直させるという機能を有し(つまり,妥当な値が入力されるまでループする形になっている)
・戻り値として入力された値を返す.

みたいな.

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: c言語自由課題

#3

投稿記事 by みけCAT » 2年前

「文字に関する関数」を使ってはいけないというのに注意したいですね。
例えば、
・書式指定文字列を扱うprintf系やscanf系の関数
文字の入出力を行うgetchar関数、putchar関数、getc関数、fgetc関数、putc関数、fputc関数
文字列の入出力を行うgets関数、puts関数、fgets関数、fputs関数
などは使えなそうですね。
となると、通常のパソコン環境であれば、入出力はfread関数やfwrite関数を使用するのがいいでしょう。
システムコールや、マイコン環境におけるメモリマップドI/Oを使うという選択肢もあるでしょう。

さらに、「数学関数や文字に関する関数」は標準関数に限られなそうであることにも注意したいです。
例えば、fread関数で1行読み込み、文字列として返す、
のような自作関数も「文字に関する関数」となり、使ってはいけないと考えられます。
あくまで文字として扱わず、この例なら「値0x0Aのバイトで区切られたバイト列を読み込んで返す」
という仕様にすることで回避できるかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
あたっしゅ
記事: 663
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: c言語自由課題

#4

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「
『なんかの標準関数を自分で書け』っていう課題じゃないみみ ?

コード:

char*
strcpy( char* dst, char* src )
{
    // 自分で書くみみ
}

int
main()
{
    char dst[ 5+1 ];
    char src[] = "12345";

    strcpy( dst, src );
    return 0;
}
strcpy を自分で書けないなら、『strcpy 自作』で検索みみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

返信

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