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

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

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

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

Q&A

解決済

2回答

209閲覧

平均値プログラムについて

退会済みユーザー

退会済みユーザー

総合スコア0

C

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

0グッド

0クリップ

投稿2018/08/09 07:01

編集2018/08/09 08:22

c

1 #include <stdio.h> 2 #include <string.h> 3 int main (){ 4 5 int x = 0,y = 1,numbur,i = 0; 6 char s[100]; 7 int average = 0; 8 while(1){ 9 scanf("%d",&numbur); 10 switch(numbur){ 11 case 1: 12 printf("モード1を選んだね\n"); 13 fgets(s,sizeof(s),stdin); 14 sscanf(s,"%d",&x); 15 average += s[i]; 16 i++; 17 break; 18 19 case 2: 20 printf("モード2を選んだね\n"); 21 average = average / (i+1); 22 printf("平均は%dです\n",average); 23 break; 24   } 25 } 26 return 0; 27 } 28 29~ 30~

case1を何回も選んで足し算させて、その平均を出したいときにcase2を選んで平均値を出すプログラムを書きたかったのですが、近いところまで来てると思うのですが。うまく機能しません。
アドバイスよろしくお願いします

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

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

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

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

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

ttyp03

2018/08/09 07:07

コードに行番号は付加しないでください。
ttyp03

2018/08/09 07:07

インデントもきれいにしてください。読みづらいです。
guest

回答2

0

折角xに変換しているのに使っていないです。
これだけ直せばいいような。

c

1average += x;

投稿2018/08/09 07:13

ttyp03

総合スコア16998

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

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

退会済みユーザー

退会済みユーザー

2018/08/09 07:20

使っていると思うのですが
ttyp03

2018/08/09 07:22

え? こうなってますが。 average += s[i];
退会済みユーザー

退会済みユーザー

2018/08/09 07:25 編集

いいと思うのですが
ttyp03

2018/08/09 07:28

違うと言っているのですが。
BluOxy

2018/08/09 07:48 編集

sscanf(s,"%d",&x);でxに入力した数字を参照しているので、 ttyp03様の仰るとおり、 average += x;にすれば良いと思います。 少なくとも質問にあがっているソースは average += s[i]; となっております。 C言語はあまり詳しくないのですが s[i]をインクリメントした場合、charをintに暗黙的に変換した値が 足される挙動になるかと思われます。 ご確認ください。
coco_bauer

2018/08/09 07:49

average += s[i]; の前の行は sscanf(s,"%d",&x); となっていて、charの配列 s を、"整数を表す文字列だと解釈して"(%d) ,得られた整数がx に代入されます。 キー入力が「123」であった場合、xは123という整数になりますが、s[i]だと"1”という文字にしかなりません。 どこが間違っているか、判っていただけますか?
guest

0

ベストアンサー

良い回答がほかの場所で見つかったため、それを参考にしたいと思います。ありがとうございました。

おかげさまでスコアが0になりました笑笑

投稿2018/08/10 05:57

編集2018/08/11 06:06
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問