| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 523 人关注过本帖
标题:关于二维数组复制数值的问题
只看楼主 加入收藏
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:4 
关于二维数组复制数值的问题
明明赋值错误了,为什么显示正确的结果

#include<stdio.h>  
double copy_arr(double *,double *,int n);  
double copy_ptr(double *,double *,int n);  
int main(void)  
{  
    double source[2][5]={{1.2,3.2,2.2,4.2,5.2},{2.2,4.2,12.2,4.2,1.2}};  
    double target1[2][5];  
    double target2[2][5];  
    copy_arr(source,target1,10);  
    printf("\n");  
    copy_ptr(source,target2,10);  
      
}  
double copy_arr(double *source,double *target1,int n)  
{  
    int i,total=0;  
    for(i=0;i<n;i++)  
    {                           //这里为什么会显示正确的结果,明明是赋给target1[0]-target1[9],为什么结果会和target2[0][0]-target2[1][4]的值一样
    target1[i]=source[i];  
    printf("%5.1f",target1[i]);  
    }  
}  
double copy_ptr(double *source,double *target2,int n)  
{  
    int i,total=0;  
    for(i=0;i<n;i++)  
    {  
        *(target2+i)=*(source+i);  
        printf("%5.1f",*(target2+i));  
      
         
    }  
}  
搜索更多相关主题的帖子: double include source 
2014-09-16 21:14
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
明明给target1赋的是一维数组,为什么结果和二维数组一样了?
2014-09-16 21:16
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:20 
简单说说:
代码全是错误,别提什么结果了。。
#include<stdio.h>  
double copy_arr(double *,double *,int n);   //原型都不对,至少应该像这样
////////////////////////////double copy_arr(double (*)[5],double (*)[5],int n);
double copy_ptr(double *,double *,int n);  
int main(void)  
{  
    double source[2][5]={{1.2,3.2,2.2,4.2,5.2},{2.2,4.2,12.2,4.2,1.2}};  
    double target1[2][5];  
    double target2[2][5];  
    copy_arr(source,target1,10);     
    printf("\n");  
    copy_ptr(source,target2,10);  
      ///////////////////应该return 0;
}  
double copy_arr(double *source,double *target1,int n)  //它有返回值吗?
{  
    int i,total=0;  
    for(i=0;i<n;i++)  
    {                           //这里为什么会显示正确的结果,明明是赋给target1[0]-target1[9],为什么结果会和target2[0][0]-target2[1][4]的值一样
    target1[i]=source[i];    //能这样赋值吗!!!!!!!
    printf("%5.1f",target1[i]);  
    }  
}  
double copy_ptr(double *source,double *target2,int n)  
{  
    int i,total=0;  
    for(i=0;i<n;i++)  
    {  
        *(target2+i)=*(source+i);  
        printf("%5.1f",*(target2+i));  
      
         
    }  
}  
2014-09-16 21:55
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 3 楼 erty1001
多谢指导,现在在看c primer plus啊,第十章数组与指针,看来才看一遍完全不知所云啊,题目都做不出来
2014-09-16 22:12
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:0 
回复 4 楼 ctl184762651
没事,再看第二遍就好了。
2014-09-20 04:15
快速回复:关于二维数组复制数值的问题
数据加载中...
 
   



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

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