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

複数回整数を入力し、-1以下もしくは101以上の入力で整数の入力を終了、
最後の-1以下もしくは101以上の数値を省いた
合計と平均の算出をしたいのです。
が、現状。
{
int sum=0,p=0,n=0;
while(0<=p){
printf("点数:");
scanf("%d",&p);
if(0<=p){
sum=sum+p;
n++;
}
}
printf("%d",sum);
printf("%6.2f",(double)sum/n);
return 0;
}
で、101以上の際の処理ができません。
お教えいただける方、よろしければお願いいたします。

A 回答 (3件)

{


int sum=0,p=0,n=0;
while(0<=p && p<=100){ <== ★
printf("点数:");
scanf("%d",&p);
if(0<=p && p<=100){ <== ★
sum=sum+p;
n++;
}
}
printf("%d",sum);
printf("%6.2f",(double)sum/n);
return 0;
}

もうちょっと直してこんな感じでどうですか?

{
 int sum=0,p=0,n=0;
 while(1) {
  printf("点数:");
  scanf("%d",&p);
  if(p<0 || 100<p) {
   break;
  }
  sum=sum+p;
  n++;
 }
 printf("%d",sum);
 printf("%6.2f",(double)sum/n);
 return 0;
}
    • good
    • 0
この回答へのお礼

ありがとうございました!
&&の部分を参考図書などで見ていたとき読み飛ばしてしまっていた
様です。
助かりました!
もっと勉強いたします、、、

すいません、お礼を記述後でしたのでこの場をお借りして
SRitchieもありがとうございました
m(_ _)m

お礼日時:2007/08/21 15:24

>で、101以上の際の処理ができません。



終了条件「-1以下もしくは101以上の入力で整数の入力を終了」を満足しないってこと?
プログラムのどの部分に101以上の入力で終了する処理があるのでしょう?
どう見ても負の整数以外では、while文を抜けないけど・・・
    • good
    • 0
この回答へのお礼

そうなんです
どうやったら2つの条件を設定できるのかわからず、
とりあえず、片方の条件で作ってみたのが上記の記述です
もっと勉強します、、ありがとうございました

お礼日時:2007/08/21 15:22

このソースではpが0以下しか条件判断してませんよね。



0<=p にor "|"を使ってpが101以上の条件をつければ…
    • good
    • 0
この回答へのお礼

ありがとうございます。
while(p<0 | p>100)としてみたのですが、だめでした、、、
記述が間違っているのか、確認してみます

お礼日時:2007/08/21 14:56

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