#include <stdio.h>
int main(void){
int p; scanf("%d",&p); if(p == 1){ int price,n; scanf("%d %d",&price,&n); printf("%d",price * n); } if(p == 2){ int price,n; char text[20]; scanf("%s %d %d",&text,&price,&n); printf("%s!\n",text); printf("%d",price * n); }
}
問題は、どのような問題なのでしょうか。
問題文
A君はたこ焼きの情報を処理するプログラムを書いています。
このプログラムは以下の2パターンの入力を処理します。
パターン1
入力
1
price
N
1行目で、パターンを表す整数1が入力されます。
2行目で、たこ焼き1個あたりの値段priceが入力されます。
3行目で、たこ焼き1セットあたりの個数Nが入力されます。
出力
たこ焼き1セットあたりの値段(=N×price)を出力します。
パターン2
入力
2
text
price
N
1行目で、パターンを表す整数2が入力されます。
2行目で、たこ焼きセットの説明文textが入力されます。
3行目で、たこ焼き1個あたりの値段priceが入力されます。
4行目で、たこ焼き1セットあたりの個数Nが入力されます。
出力
1行目で、たこ焼きセットの説明文textの末尾に!をつけて出力します。
2行目で、たこ焼き1セット辺りの値段(=N×price)を出力します。
A君はこの通りの動作をするプログラムを書いたつもりでしたが、プログラムを実行してみるとエラーが発生しました。
A君が書いたプログラムのエラーを修正し、正しく動作するようにしてください。
A君が書いたプログラム
Copy
#include <bits/stdc++.h>
using namespace std;
int main() {
int p;
cin >> p;
// パターン1
if (p == 1) {
int price;
cin >> price;
}
// パターン2
if (p == 2) {
string text;
int price;
cin >> text >> price;
}
int N;
cin >> N;
cout << text << "!" << endl;
cout << price * N << endl;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int p;
cin >> p;
// パターン1
if (p == 1) {
int price;
cin >> price;
}
// パターン2
if (p == 2) {
string text;
int price;
cin >> text >> price;
}
int N;
cin >> N;
cout << text << "!" << endl;
cout << price * N << endl;
}
もしプログラムを修正した結果、A君が書いたプログラムとの違いが大きくなってしまったとしても、ACができればOKです。
制約
0≦price,N≦100
price,Nは整数
textは半角英数字からなる
textは20文字以内
ジャッジでは以下の入力例以外のケースに関してもテストされることに注意。
入力例1
Copy
1
80
5
出力例1
Copy
400
入力例2
Copy
2
umai
150
3
出力例2
Copy
umai!
450
入力例3
Copy
2
good!
30
8
出力例3
Copy
good!!
240
A君が書いたプログラムはC++です。
あなたが提示したプログラムはCです。
どちらの言語で書くのが正解なのでしょうか?
c言語です。分かりづらくてすみません💦c言語で書いた自分のコードの間違えてるところを教えてほしいです
「どこに」提出すると不正解になるのでしょうか。問題の出典を記載ください。
atcoderのEX8 - たこ焼きセット という問題です
ご質問は編集できます。
回答2件
あなたの回答
tips
プレビュー