C语言指针问题

编写一个程序,初始化一个double数组,然后把数组内容复制到另外两个数组(3个数组都需要在主程序中声明)。制作第一份拷贝的函数使用数组符号。制作第二份拷贝的函数使用指针... 编写一个程序,初始化一个double 数组,然后把数组内容复制到另外两个数组(3 个
数组都需要在主程序中声明)。制作第一份拷贝的函数使用数组符号。制作第二份拷贝的函
数使用指针符号,并使用指针的增量操作。把目标数组名和要复制的元素数目做为参数传递
给函数。也就是说,如果给定了下列声明,函数调用应该如下面所示:
double source [5]={1.1, 2.2, 3.3, 4.4, 5.5};
double targetl[5];
double target2 [5];
copy_arr (source, target1, 5);
copy_ptr (source, target1,5);
***************************************************************************************
#include<stdio.h>
void copy_arr(double[], double[], int);
void copy_ptr(double *, double *, int);
int main(void)
{
double source[] = { 1.1, 2.2, 3.3, 4.4, 5.5 };
double target1[5] = {0 };
double target2[5] = { 0 };
int i;
for (i = 0; i<5; i++)
printf("%d ", target1[i]);
printf("\n");
for (i = 0; i<5; i++)
printf("%d ", target2[i]);
printf("\n");
copy_arr(source, target1, 5);
copy_ptr(source, target2, 5);
for (i = 0; i<5; i++)
printf("%d ", target1[i]);
printf("\n");
for (i = 0; i<5; i++)
printf("%d ", target2[i]);
printf("\n");
return 0;
}
void copy_arr(double a[], double b[], int n)
{
int k;
for (k = 0; k < n; k++)
b[k] = a[k];
}
void copy_ptr(double *d, double *c, int m)
{
int j;
for (j = 0; j < m; j++)
*(c+j) = *(d+j);
}
*******************************************************************
上面是我的程序,但输出这样,哪里出了问题呢?
展开
 我来答
木木青青4
2015-02-05 · TA获得超过647个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:171万
展开全部
你输出的时候格式有问题

把printf中的%d 改为%lf 结果就是对的了
更多追问追答
追问
那%g是啥意思?
追答
%d是整数的格式
%f是float的格式
%lf是double的格式
%g是实数的格式,同时会根据你的具体数字自动选择是按照小数输出,还是按照科学计数法输出
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
娱乐文风
2020-04-25 · 贡献了超过121个回答
知道答主
回答量:121
采纳率:100%
帮助的人:5.8万
展开全部

30分钟彻底学会C语言指针

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengfei5551223
2015-02-05 · TA获得超过135个赞
知道小有建树答主
回答量:213
采纳率:100%
帮助的人:125万
展开全部
请使用 printf("%lf",target[i] )进行输出
追问
那%g是啥意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式