第1个回答 2011-07-03
正确代码和运行结果如下:
C语言代码:
#include <stdio.h>
int main(void)
{
int a[5],*p,min,max;
double ave;
ave = 0.0;
for(p = a; p != a + sizeof(a)/sizeof(int); ++p)
{
scanf("%d", p);
}
/* 注意必须在数组初始化之后再给max和min赋值 */
p = a;
max = min = *p;
for(p = a; p != a + sizeof(a)/sizeof(int); ++p)
{
if(max < *p)
{
max = *p;
}
if(min > *p)
{
min = *p;
}
ave += *p;
}
ave /= sizeof(a)/sizeof(int);
printf("max=%d,min=%d,ave=%lf\n",max,min,ave);
return 0;
}
运行结果:
D:\test> test.exe
12 23 43 22 45 56645 4564
max=45,min=12,ave=29.000000
说明:上面输如数字的时候,也可以一个数字一行;多个数字一行像上面,写多于5个也没有关系,程序会自己搞定
C++的代码如下,运行结果跟上面一样:
#include <iostream>
using namespace std;
int main(void)
{
int a[5],*p,min,max;
double ave;
ave = 0.0;
for(p = a; p != a + sizeof(a)/sizeof(int); ++p)
{
cin >> *p;
}
/* 注意必须在数组初始化之后再给max和min赋值 */
p = a;
max = min = *p;
for(p = a; p != a + sizeof(a)/sizeof(int); ++p)
{
if(max < *p)
{
max = *p;
}
if(min > *p)
{
min = *p;
}
ave += *p;
}
ave /= sizeof(a)/sizeof(int);
cout << "max=" << max << ", min=" << min << ", ave=" << ave << endl;
return 0;
}
希望对你有所帮助,如果还有问题,欢迎交流:)本回答被网友采纳