結果
| 問題 |
No.49 算数の宿題
|
| コンテスト | |
| ユーザー |
sasa
|
| 提出日時 | 2025-03-10 09:32:01 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 817 bytes |
| コンパイル時間 | 219 ms |
| コンパイル使用メモリ | 25,344 KB |
| 実行使用メモリ | 7,328 KB |
| 最終ジャッジ日時 | 2025-03-10 09:32:04 |
| 合計ジャッジ時間 | 822 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / 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++;
}
// 先頭の記号を格納
char symbol;
symbol = str[j];
// 右辺を格納して計算・計算結果は左辺に格納
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');
num2 = num2 * 10 + tmp;
}
j++;
}
// 末尾の計算
if(symbol == '*'){
num1 *= num2;
}else if(symbol == '+'){
num1 += num2;
}
printf("%d",num1);
}
sasa