一个关于double和float的问题程序
#include <stdio.h>#define N 12
main()
{
double a[]={1.5,4.6,7.8,9.2,7.4,6.5,7.0,9.8,8.7,21.7,15.6,34.3};
void arr_add(double *p,int n);
void odd_add(double *p,int n);
void arr_max(double *p,int n);
void arr_aver(double *p,int n);
int n=N;
double *pt=a;
arr_add(pt,n);
odd_add(pt,n);
arr_max(pt,n);
arr_aver(pt,n);
}
void arr_add(double *p,int n)
{
int i;
double sum=0;
for(i=0;i<n;i++,p++)
sum=sum+ *p;
printf("the sum of %d elements is:",n);
printf("%8.2f\n",sum);
}
void odd_add(double *p,int n)
{
int i;
double sum=0;
for(i=0;i<n;i+=2,p+=2)
sum=sum+ *p;
printf("the sum of odd elements is:",n);
printf("%8.2f\n",sum);
}
void arr_max(double *p,int n)
{
int i;
double max;
max= *p;
for(i=0;i<n;i++,p++)
if(*p>max)max=*p;
printf("the maximum of %d elements is:",n);
printf("%8.2f\n",max);
}
void arr_aver(double *p,int n)
{
int i;
double sum=0,ave;
for(i=0;i<n;i++,p++)
sum+=*p;
ave= sum/n;
printf("the average of %d elements is:",n);
printf("%8.2f\n",ave);
}
以上程序在我的vista下运行可以,也没有错误,但将程序里所有double改为float,则会有很多"错误",但仍然有运行结果。
请点解一下,谢谢~!附一张提示截图。