「電卓」の編集履歴(バックアップ)一覧はこちら

電卓」(2005/11/07 (月) 05:39:20) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p>25 :<font color="green"><b>名無し<font color= "#FF0000">@C/C++の宿題を片付けます 52代目</font></b></font> :2005/10/28(金) 13:48:31</p> <dl> <dd>名無し :2005/10/27(木) 22:48:14<br> [1] 授業単元:電卓<br> [2] 問題文:<br>   入力:二つの10進数(非負の整数、4桁以下で符号無し)を加算記号"+"、減算記号"-"、で連結し最後に等号を付け加えた式を文字列として入力。<br>   操作:入力された文字列から加算記号、減算記号、等号を区切り記号として二つの10進数を文字列として切り出す。<br>      切り出した文字列を数値に変換する。加減算を行って結果を計算。<br>   出力:計算結果を等号"="の後ろに出力。<br> [3] 環境<br>  [3.1] OS: Linux<br>  [3.2] コンパイラ名とバージョン: gcc<br>  [3.3] 言語: C<br> [4] 期限: [2005年10月29日9:00まで]<br> [5] その他の制限:文字列を読み込み、整数か記号であるかを判断(isalpha,isdegit等)、次に数字を数値変換(strtoi,strtol等)でその後、演算記号に従って計算<br> どうかお願いします。</dd> <dd><br> <hr></dd> <dd> <p>#include &lt;stdio.h&gt;<br> #include &lt;ctype.h&gt;<br> #include &lt;stdlib.h&gt;<br> int main() {<br>  char s[] = "1234+2345="; /* 入力 */<br>  char sl[256], sr[256], *stop;<br>  char *p = s, *q = sl, *r = sr, op;<br>  int i, lhs, rhs, ans;<br>  while (isdigit(*p)) *q++ = *p++;<br>  op = *p++;<br>  while (isdigit(*p)) *r++ = *p++;<br>  lhs = strtol(sl, &amp;stop, 10); /* 10進法 */<br>  rhs = strtol(sr, &amp;stop, 10); /* 10進法 */<br>  printf("lhs = %d, rhs = %d\n", lhs, rhs);<br>  switch (op) {<br>   case '+': ans = lhs+rhs; break;<br>   case '-': ans = lhs-rhs; break;<br>  }<br>  printf("ans = %d\n", ans);<br> }</p> </dd> </dl>
<p>25 :<font color="green"><b>名無し<font color= "#FF0000">@C/C++の宿題を片付けます 52代目</font></b></font>:2005/10/28(金) 13:48:31</p> <dl> <dd>名無し :2005/10/27(木) 22:48:14<br> [1] 授業単元:電卓<br> [2] 問題文:<br>   入力:二つの10進数(非負の整数、4桁以下で符号無し)を加算記号"+"、減算記号"-"、で連結し最後に等号を付け加えた式を文字列として入力。<br>   操作:入力された文字列から加算記号、減算記号、等号を区切り記号として二つの10進数を文字列として切り出す。<br>      切り出した文字列を数値に変換する。加減算を行って結果を計算。<br>   出力:計算結果を等号"="の後ろに出力。<br> [3] 環境<br>  [3.1] OS: Linux<br>  [3.2] コンパイラ名とバージョン: gcc<br>  [3.3] 言語: C<br> [4] 期限: [2005年10月29日9:00まで]<br> [5]その他の制限:文字列を読み込み、整数か記号であるかを判断(isalpha,isdegit等)、次に数字を数値変換(strtoi,strtol等)でその後、演算記号に従って計算<br> どうかお願いします。</dd> <dd><br> <hr></dd> <dt>26 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a> :2005/10/28(金) 14:10:31</dt> <dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/25" target= "_blank">&gt;&gt;25</a> 前スレから移動するときはちゃんと経緯も書こうね</dd> <dd>#include &lt;stdio.h&gt;<br> #include &lt;ctype.h&gt;<br> #include &lt;stdlib.h&gt;<br> int main() {<br>  char s[] = "1234+2345="; /* 入力 */<br>  char sl[256], sr[256], *stop;<br>  char *p = s, *q = sl, *r = sr, op;<br>  int i, lhs, rhs, ans;<br>  while (isdigit(*p)) *q++ = *p++;<br>  op = *p++;<br>  while (isdigit(*p)) *r++ = *p++;<br>  lhs = strtol(sl, &amp;stop, 10); /* 10進法 */<br>  rhs = strtol(sr, &amp;stop, 10); /* 10進法 */<br>  printf("lhs = %d, rhs = %d ", lhs, rhs);<br>  switch (op) {<br>   case '+': ans = lhs+rhs; break;<br>   case '-': ans = lhs-rhs; break;<br>  }<br>  printf("ans = %d ", ans);<br> }</dd> </dl>

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー