注册 登录
编程论坛 C图形专区

一个关于double和float的问题程序

ensky_cy 发布于 2008-10-19 22:30, 894 次点击
#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,则会有很多"错误",但仍然有运行结果。
请点解一下,谢谢~!附一张提示截图。
0 回复
1