ページ 11

C言語について

Posted: 2011年10月17日(月) 01:34
by もも
8桁以内の整数値を読み込み、1桁づつ切り出し、
1行に1桁づつ8行で表示する。
次の2 つの場合について簡単なソースを作成してください。
①下位桁から表示し,その合計を計算し,表示する。
②上位桁から表示し,その合計を計算し,表示する。

Re: C言語について

Posted: 2011年10月17日(月) 08:12
by naohiro19
フォーラムルールをご覧ください

Re: C言語について

Posted: 2011年10月17日(月) 12:31
by hss12
配列かポインタに読み込んだ数値の文字列を代入し
putcharと改行でいけると思います。

合計は文字から数字に変換しないといけないので -'0' などすれば良いかと。
文字列の最後は '\0' ということは分かりますか?
この掲示板はそのまま回答を書くことは禁止されているので
まず自分で書いてみて、分からない部分をまた質問してください。

Re: C言語について

Posted: 2011年10月17日(月) 15:31
by non
もも さんが書きました:8桁以内の整数値を読み込み、
これが、学校の課題であるなら、読み込み方法に指定があるはず。
つまり、getcharで文字として読み込むのか、scanf("%ld で数値で読み込むのか。
それによって、仮に取り込んでおく変数を文字列型にするか、整数型にするのか。
1桁ずつの取り出し方が変わってきます。

私が先生なら、整数型に指定します。

Re: C言語について

Posted: 2011年10月17日(月) 22:22
by box
hss12 さんが書きました: この掲示板はそのまま回答を書くことは禁止されている
本当ですか?

Re: C言語について

Posted: 2011年10月18日(火) 06:41
by たかぎ
とりあえず①だけ作ってみました。

コード:

#include <stdio.h>
#include <ctype.h>

int sub(int sum, int n)
{
    if (n > 0)
    {
        int c = getchar();
        if (isdigit(c))
        {
            sum = sub(sum + c - '0', n - 1);
            printf("%c\n", c);
        }
    }
    return sum;
}

int main(void)
{
    printf("sum = %d\n", sub(0, 8));
    return 0;
}
②は自分で考えてください。
ちなみに、これを「そのまま回答」ととらえるかどうかはその人次第です。

Re: C言語について

Posted: 2011年10月18日(火) 10:26
by hss12
おっと、私へのつっこみですか。失礼しました。
本当ですか?というのは禁止されてないよ、ということでしょうか。
確かに回答するなとは書かれていませんが、禁止された質問をする人はいるわけで
回答してしまったら掲示板の趣旨に反すると思うのですが。
課題の丸投げは禁止ですので回答は控えます、とでも書けばよかったでしょうか。
まったく分かりませんということなら回答を書くかもしれませんが。

もしかしたら、課題とは書かれていないので
C言語の問題を作ってみたので皆さん考えてみてください
の可能性もありますが・・・。
たかぎさん、isdigitがありましたか勉強になります。

雑談みたいになってしまいすみません。
ももさん気にせず返信してくださいませ。