该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
-----------------------------------------------------
编写求一组整数的和与平均值的程序。
-----------------------------------------------------
[分析]循序渐进,从易到难,分解为下列问题群。
[6-1a]键盘输入5个整数,求它们的和与平均值。
[6-1b]键盘输入N(符号常量)个整数,求它们的和与平均值。
[6-1c]键盘输入n(n为变量)个整数,求它们的和与平均值。
n本身由键盘输入。
[6-1d]输入若干个正整数,求它们的和与平均值。此类题目
须事先有所约定,如键入0或负数表示完毕。
--------------[6-1a]的参考代码-----------------------
#include
void main()
{ float average; //用于存平均值
int i,x,sum=0; //累加器sum清零
for(i=1;i<=5;i++)//循环5次
{
printf("number %d = ",i);//提示输入
scanf("%d",&x);
sum += x;
}
printf("sum = %d\n",sum);
average=sum/5.0; //想一想为何要写成5.0
printf("average=%f\n",average);
}
--------------[6-1b]的参考代码-----------------------
#include
#define N 5 //定义符号常量
void main()
{ float average; //用于存平均值
int i,x,sum=0; //累加器sum清零
for(i=1;i<=N;i++)//循环N次
{
printf("number %d = ",i);//提示输入
scanf("%d",&x);
sum += x;
}
printf("sum = %d\n",sum);
average=(float)sum/N; //为何要(float)
printf("average=%f\n",average);
}
--------------[6-1c]的参考代码-----------------------
#include
void main()
{
float average; //用于存平均值
int i,x,sum=0; //累加器sum清零
int n; //额定的输入数据总数
printf("total input data = ");
scanf("%d",&n);
for(i=1;i<=n;i++)//循环N次
{
printf("number %d = ",i);//提示输入
scanf("%d",&x);
sum += x;
}
printf("sum = %d\n",sum);
average=(float)sum/n;//能否写成(float)(sum/n)
printf("average=%f\n",average);
}
--------------[6-1d]的参考代码-----------------------
#include
void main()
{ /* 以下i初值为何取0不取1呢? */
int i=0,x,sum=0; //累加器sum清零
while(1) //循环次数不定
{
printf("data %d = ",i+1);//提示输入
scanf("%d",&x);
if(x<=0)break;//此句是关键
sum+=x; i++;
}
if(i==0)return; //避免零除
printf("sum = %d\n",sum);
printf("average=%f\n",(float)sum/i);
}