标题:一个小小的问题.....
只看楼主
成成成
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-8-1
结帖率:66.67%
已结贴  问题点数:20 回复次数:2 
一个小小的问题.....
#include<stdio.h>
void arr(double [],double [],int);
void ptr(double *,double *,int);

int main()
{
    double source[5]={1,2,3,4,5};
    double target1[5]={0};
    double target2[5]={0};   
    arr(source,target1,5);
    printf("\n\n");
    ptr(source,target2,5);
    return 0;
}

void arr(double a1[],double a2[],int a)
{
    int i;
    for(i=0;i<a;i++)
    {
        a2[i]=a1[i];
        printf("target1[%d]=%g \n",i,a2[i]);   // 这里为什么输出时一定要用%g,而不能%d ?
    }
}

void ptr(double *p1,double *p2,int a)
{
    int i;
    for(i=0;i<a;i++)
    {
        *(p2+i)=*(p1+i);
        printf("target2[%d]=%g\n",i,*(p2+i));   //还有这里。
    }
}
搜索更多相关主题的帖子: include double return source 
2016-12-03 14:57
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:20 
1-%g可以用来判断输出多少位小数以及是否选择用科学计数法输出--对本题而言把%g改为%.f也能得到相同的输出结果~
2-a2[]还有*p的数据类型为double型~故用%d整型输出会得到无效结果。

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-03 15:32
成成成
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-8-1
得分:0 
对喔,是double,我把它当成int了,害我想了辣么久。
谢了
2016-12-03 15:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471922-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.507427 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved