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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1204閲覧

VineLinux Leafpadでのdo文

aiueo12345

総合スコア41

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/05/28 12:08

前提・実現したいこと

VineLinux Leafpad で、データとして『0』が入力されるまでに入力したデータの個数・合計・平均を出力させるプログラムを書いています。
書いたプログラムは以下の通りです。

C言語

1#include <stdio.h> 2int main(void) 3{ 4 double sum=0; 5 int cnt=0; 6 double a; 7 printf("データを入力してください。(終了は0)\n"); 8 printf("データ:"); 9 scanf("%f",&a); 10 sum+=a; 11 do 12 { 13 printf("次のデータ:"); 14 scanf("%f",&a); 15 sum+=a; 16 cnt++; 17 } 18 while(a!=0); 19 printf("件数=%d\n",cnt); 20 printf("合計=%f\n",sum); 21 printf("平均=%f"\n,sum/cnt); 22 return 0; 23}

発生している問題・エラーメッセージ

コンパイルエラーは起きず、件数は正しく表示されるのですが、『合計』と『平均』が0.000000になってしまいます。 どこをどう変更すれば正しく出力させられるのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

scanf の double は %lf です。

c

1scanf("%lf", &a);

gcc でコンパイルしたならば、次のような警告が出たはずですが、ちゃんと見ましたか?

main.c: In function ‘main’: main.c:9:14: warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double *’ [-Wformat=] scanf("%f",&a); ^

投稿2018/05/28 12:40

yuki23

総合スコア1448

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

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

aiueo12345

2018/05/28 16:33

プログラムを変えずに再度実行してみましたが、警告は出ませんでした、、、。 doubleをfloatに変えることでうまくいきました! 回答ありがとうございました_(._.)_ 、、、ところで、なぜ警告は出ないのでしょうか?(^-^;
yuki23

2018/05/28 22:13

gcc のオプションに -Wall とか -W を付けてみてください。 それでも出なければ、gcc のバージョンが古いのでしょう。今時 Vine Linux を使っているなんて相当古い環境でしょうから…。
aiueo12345

2018/05/31 08:03

-Wallをつけるとエラーコードが出ました! ちなみにpcはこの春買った大学指定のものですが、古いのでしょうか泣 改めて回答ありがとうございました_(._.)_ また機会があればよろしくお願いします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問