| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1281 人关注过本帖
标题:大佬求助
取消只看楼主 加入收藏
Ametrin
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:26
注 册:2018-8-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
大佬求助
写的是数组内容,将已知数组拷贝到其它三个数组内,第一个数组是使用带数组表示法的函数;第二个数组是使用带指针表示法和指针递增的函数;第三个是以目标数组名、源数组名和指向源数组最后一个元素后面的元素指针的方法。
现在三种方法得到的答案都有误,以下是程序,还请各位大佬指点:
#include<stdio.h>
void copy_arr( double target1[], double source[], int num );
void copy_ptr( double *target2, double *source, int num );
void copy_ptrs( double *target3, double *start, double *end );
void out_put( double *target, int num);
int main(void)
{
    double source[5] = {1.1, 2.2, 3.3, 4.4, 5.5};
    double target1[5];
    double target2[5];
    double target3[5];
   
    copy_arr(target1, source, 5);
    copy_ptr(target2, source, 5);
    copy_ptrs(target3, source, source + 5);
    out_put(target1, 5);
    out_put(target2, 5);
    out_put(target3, 5);
   
    return 0;
}
void copy_arr( double target1[], double source[], int num )
{
    int i;
    for(i = 0; i < num; i++)
    {
        target1[i] = source[i];
    }
}
void copy_ptr( double *target2, double *source, int num )
{
    int i;
    for(i = 0; i < num; i++)
    {
        *target2 = *source;
        *target2++;
        *source++;
    }
}
void copy_ptrs( double *target3, double *start, double *end )
{
    while(*start < *end)
    {
        *target3 = *start;
        *start++;
    }
}
void out_put( double *target, int num)
{
    int i;
   
    for(i = 0; i < num; i++)
    {
        printf("%d, ", *target);
        *target++;
    }
    printf("\n");
}
搜索更多相关主题的帖子: void double source int num 
2018-11-15 09:57
Ametrin
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:26
注 册:2018-8-28
收藏
得分:0 
已解决,新代码如下:
#include<stdio.h>
void copy_arr( double target1[], double source[], int num );
void copy_ptr( double *target2, double *source, int num );
void copy_ptrs( double *target3, double *start, double *end );
void out_put( double *target, int num);
int main(void)
{
    double source[5] = {1.1, 2.2, 3.3, 4.4, 5.5};
    double target1[5];
    double target2[5];
    double target3[5];
   
    copy_arr(target1, source, 5);
    copy_ptr(target2, source, 5);
    copy_ptrs(target3, source, source + 5);
    out_put(source, 5);
    out_put(target1, 5);
    out_put(target2, 5);
    out_put(target3, 5);
   
    return 0;
}
void copy_arr( double target1[], double source[], int num )
{
    int i;
    for(i = 0; i < num; i++)
    {
        target1[i] = source[i];
    }
}
void copy_ptr( double *target2, double *source, int num )
{
    int i;
    for(i = 0; i < num; i++)
    {
        *target2 = *source;
        *target2++;
        *source++;
    }
}
void copy_ptrs( double *target3, double *start, double *end )
{
    while(*start > *end)
    {
        *target3 = *start;
        *start++;
        *target3++;
    }
}
void out_put( double *target, int num)
{
    int i;
   
    for(i = 0; i < num; i++)
    {
        printf("%1.2lf, ", *target);
        *target++;
    }
    printf("\n");
}
2018-11-15 10:11
快速回复:大佬求助
数据加载中...
 
   



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

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