アプリ版:「スタンプのみでお礼する」機能のリリースについて

二回目以降の入力がうまくいきません。
こんな感じでプログラム組んでます。
#include <stdio.h>
#define NUMBER 50
3 int main(void)
4 {
5 int i, num=0;
6 double kari[NUMBER];
7 scanf("%d", &num);
8 for(i=0; i<num; i++){
9 printf("number%d:", i+1);
10
11 scanf("%7.2f", &kari[i]);
12
13 }
14 return 0;
15 }



あと 入力し終わった後に
まとめて表のような形にしたいと考えてます

./a.out
5
number1: 35.2
    ・
    ・
    ・
number5: 42.0
ーーーーーーーーーー
|1番| 35.2|
|2番| 11.4|
     ・
     ・
|5番| 42.0|
ーーーーーーーーーー

こんな感じで出力したいです。

A 回答 (2件)

kari[NUMBER]がdouble型で宣言されているので、scanfの部分は


scanf("%lf", &kari[i]);
でないと正しく格納されないでしょう。

後半の結果表示ですが、全角文字での表示をご希望?
そうであれば、結構骨が折れますよ。
printf()では数値は半角表示なので、そのままでは無理。以下のような処理が必要。

1.半角文字列の表示結果をバッファに作成(sprintf()を使用)
2.半角文字列を全角文字列に変換
3.変換した文字列をprintf()で表示

※2.の処理は下記URLの関数を組み込んで使うのが手っ取り早いか
http://www.ncad.co.jp/~komata/c-kouza23.htm

char buf[256];
:
<結果の表示ループ部の例>
sprintf(buf, "|%d番|%5.1f\n", i+1, kari[i]);
han2zen(buf);
printf(buf);

全角表示が不要なら、sprintf()をprintf()に置き換えて、2~3行目は不要。
    • good
    • 0
この回答へのお礼

分かりやすい説明ありがとうございます!
無事解決しました!

お礼日時:2020/05/29 10:02

printfの書式とscanfの書式を混同しています。



scanf("%f", &kari[i]);
または
scanf("%7f", &kari[i]);
    • good
    • 0
この回答へのお礼

ありがとうございます。 
前半の部分解決できました!

お礼日時:2020/05/28 21:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!