使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有误,请改正其中的错误,使程序正常运行,并使程序的输出结果为
平均值为29
最大值为112
最小值为-11
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include<iostream>
using namespaee std;
int main()
int i,Ave,Min,Max;
int data[8]=100,21,-73,86,14,0,-21,1;
Ave=0;
for(i=0;i<8;i++)
//******error******
Ave=data[i];
Ave/=8;
cout<<"平均值为:"<<Ave<<end1;
Max=Min=data[0];
for(i=0;i<8;i++)
//******error******
if(data[i](Max)Max=data[i];
//******error******
if(data[i])Min)Min=data[i];
cout<<"最大值为:"<<Max<<end1;
cout<<"最小值为:"<<Min<<end1;
return 0;
参考答案:应改为“if(data[i]<Min)Min=data[i];”。
解析: 本题第一个for循环是求数组各个元素的和,逐次将每个元素值加起来,而程序当中是逐个赋值的,因此在第1标识处应将“Ave=data[i]”改成“Ave+=data[i]”或“Ave=Ave+data[i]”。第2处根据题意再求数组当中元素的最大和最小值,用变量Max记录最大值,Min记录最小值,在for循环中,逐次比较,如果该元素值比当前Max大,则Max取该元素值,因此第2标识处正确的语句应该是“if(data[i])Max)Max=data[i]”。如果数组中该元素值比Min小,则Min取该元素值。因此,两个if语句中的条件判断错误,将第3标识处的语句“if(data[i])Min)Min=data[i];”改成“if(data[i](Min)Min=data[i];”。