質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

453閲覧

EX8 - たこ焼きセットの問題でテストケースでは合ってるんですが、提出すると不正解になってしまいます

Ken123v

総合スコア11

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2022/06/17 13:23

#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); }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatsu99

2022/06/17 13:27

問題は、どのような問題なのでしょうか。
Ken123v

2022/06/17 13:36

問題文 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
tatsu99

2022/06/17 14:02

A君が書いたプログラムはC++です。 あなたが提示したプログラムはCです。 どちらの言語で書くのが正解なのでしょうか?
Ken123v

2022/06/17 14:05

c言語です。分かりづらくてすみません💦c言語で書いた自分のコードの間違えてるところを教えてほしいです
can110

2022/06/17 14:26

「どこに」提出すると不正解になるのでしょうか。問題の出典を記載ください。
Ken123v

2022/06/17 14:35

atcoderのEX8 - たこ焼きセット という問題です
jimbe

2022/06/17 16:32

ご質問は編集できます。
guest

回答2

0

ベストアンサー

インデントが乱れていますが、そのままです。
text[20]をtext[21]に変更(理由はmajiponiさんの指摘通り)
printf("%d",price * n);を
printf("%d\n",price * n); に変更(2か所)
出力時、最後に改行コードを付加しないとOKになりません。
以下のソースでACを確認しました。

C

1#include <stdio.h> 2int main(void){ 3 4int p; 5scanf("%d",&p); 6 7if(p == 1){ 8 int price,n; 9 scanf("%d %d",&price,&n); 10 printf("%d\n",price * n); 11 } 12if(p == 2){ 13 int price,n; 14 char text[21]; 15 scanf("%s %d %d",&text,&price,&n); 16 printf("%s!\n",text); 17 printf("%d\n",price * n); 18} 19} 20

投稿2022/06/17 22:19

tatsu99

総合スコア5424

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

textは20文字以内、という指定があるので、20文字丁度の場合も受け入れ可能でなければいけません。要素数が20の場合、19文字+終端文字(通常、ヌル文字'\0')で満杯になってしまうので、20文字丁度の場合が受け入れ可能ではありません。

投稿2022/06/17 14:25

majiponi

総合スコア1720

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問