結果
問題 |
No.49 算数の宿題
|
ユーザー |
![]() |
提出日時 | 2025-03-10 09:38:11 |
言語 | C (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 984 bytes |
コンパイル時間 | 295 ms |
コンパイル使用メモリ | 25,088 KB |
実行使用メモリ | 7,328 KB |
最終ジャッジ日時 | 2025-03-10 09:38:12 |
合計ジャッジ時間 | 1,044 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 10 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:6:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 6 | scanf("%s",str); | ^~~~~~~~~~~~~~~
ソースコード
#include <stdio.h> int main(){ // 入力された文字列 char str[101]; scanf("%s",str); // 左辺の数字 int num1 = 0; // 右辺の数字 int num2 = 0; // 先頭の左辺を格納 int j = 0; while(str[j] != '*' && str[j] != '+'){ int tmp = (str[j] - '0'); num1 = num1 * 10 + tmp; j++; printf("文字:%d\n",tmp); printf("先頭左辺:%d\n",num1); } // 先頭の記号を格納 char symbol; symbol = str[j]; printf("記号:%d\n",symbol); // 右辺を格納して計算・計算結果は左辺に格納 while(str[j] != '\0'){ if(str[j] == '+' || str[j] == '*'){ if(symbol == '*'){ num1 += num2; }else if(symbol == '+'){ num1 *= num2; } symbol = str[j]; }else{ int tmp = (str[j] - '0'); printf("文字:%d\n",tmp); num2 = num2 * 10 + tmp; printf("右辺:%d\n",num2); } j++; } // 末尾の計算 if(symbol == '*'){ num1 *= num2; }else if(symbol == '+'){ num1 += num2; } printf("%d",num1); }