#include <stdio.h>
/*
こう書くとINPUT_MAXという文字の部分を100という文字に置き換えてくれます。
こうすることによってINPUTの上限を変えたい時に、この部分を変更するだけで良くなります。アラ便利。
こういった決まった数(定数)はこのように書くのがC言語の慣習です。C++は別の書き方があるので注意してくださいね
*/
#define INPUT_MAX 100
void main(){
/*
INPUT_MAX個のint型変数を一気に宣言しています。このような形のものを配列といいます。
ここでは「へい、おっちゃん。int型を100個まとめたdataをくれや!」という意味になります。
*/
int data[INPUT_MAX];
/*
ここではこまごました変数を宣言してますね。
最後の「sum = 0」のように宣言と同時に値を代入することも可能です。
別に分けて書いてもいいんですけどね、めんどくさいのでこう書きます。
ちなみに一番最初に変数に値を代入することを「変数を初期化する」と言ったりします。
*/
int i, cnt, sum = 0;
double avr;
/*
for文を使ってます。詳しい使い方はググって調べてください。よく出てくるので覚えようとしなくても自然と覚えてしまいます。
継続条件が「i < INPUT_MAX」なのでiが100になった途端にループを停止します。つまりループ内でiは0~99までの値しか取りません
これがまた配列と相性がいいんですよねー。
*/
for(i = 0; i < INPUT_MAX; i++ ){
printf("数字を入力してください : ");
/*
dataのi番目に、入力された整数を格納してます。iは1づつ増えていくので最初から順番に整数を格納してることになります
ちなみに配列の最初の要素は「data[0]」です。「data[1]」では無いので気をつけてくださいね
*/
scanf("%d", &data[i]);
/*もし0が入力されたらループを抜ける*/
if(data[i] == 0)
break;
}
/*
iが何番目までを指していたか、つまりdataの何番目まで整数が入ってるかをcntに避難させます
iはループで使うんでね。
*/
cnt = i;
/*
もっかいくるくるとループさせる。今度はcnt(dataの数字が入ってる場所を示す数字)まででおk。
dataの値を表示しつつsumへと加算しまくる。0~cntまで。ちなみにsumを初期化してないとここでエラーが出ます。
*/
for(i = 0; i < cnt; i++){
printf("%d : %d\n",i+1 ,data[i]);
sum += data[i];
}
/*平均値を計算*/
avr = (double)sum/cnt;
/*
せっせと溜め込んだsumを披露します。
printfの使い方に慣れてくださいね。
*/
printf("合計 : %d\n", sum);
printf("平均値 : %f",avr);
return;
}
最終更新:2008年07月25日 17:10