ページ 11

特定の文字を入力するまで実行

Posted: 2013年6月05日(水) 01:41
by happy-hope
特定の文字"#"を入力するまで入力された数を足していき合計を出力するプログラムですが、
int c;
while((c=getchar())!='#')
{ sum = sum +c }
とした場合、sumの値は間違った値がでてきます。
最善の方法は何でしょうか?
scanfの行の追加はプログラムとしてどうでしょうか?

Re: 特定の文字を入力するまで実行

Posted: 2013年6月05日(水) 07:39
by あたっしゅ
sum = sum +c



sum = sum +c-'0'

にすれば、いいと思います。
今は、時間がないので、理由まで、かけません。すいません。
「キーコード」で、検索したけど、いい説明が出てこないな。

Re: 特定の文字を入力するまで実行

Posted: 2013年6月05日(水) 07:44
by あたっしゅ
sum = sum +c-'0';

';'(セミコロン)は、必要だったかな ? pascal とごっちゃになって、忘れちゃった。

Re: 特定の文字を入力するまで実行

Posted: 2013年6月05日(水) 08:39
by non
sumが初期化されていない場合もあります。
短いプログラムなのだから、全部を貼り付けましょう。

Re: 特定の文字を入力するまで実行

Posted: 2013年6月06日(木) 07:46
by あたっしゅ
「文字コード C言語」で、

http://www.orchid.co.jp/computer/cschool/clec9.html

というのが、出てきました。