码迷,mamicode.com
首页 > 编程语言 > 详细

指针与一维数组练习题01

时间:2015-06-07 14:31:40      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

编写一个程序,初始化一个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);

 

 1 #include <stdio.h>
 2 
 3 void copy_arr(double s[],double tar[],int c);
 4 void copy_ptr(double *s,double *tar,int c);
 5 
 6 int main(void){
 7     double s[5]={1.1, 2.2, 3.3, 4.4, 5.5};
 8     double t1[5],t2[5];
 9     copy_arr(s,t1,5);
10     copy_ptr(s,t2,5);
11     int i;
12     printf("t1\t\tt2\n");
13     for(i=0;i<5;i++)
14     {
15         printf("t1[%d]=%.1f\t",i,t1[i]);
16         printf("t2[%d]=%.1f\n",i,t2[i]);
17     }
18     return 0;
19 }
20 
21 void copy_arr(double s[],double tar[],int c){
22     int i;
23     for(i=0;i<c;i++){
24         tar[i]=s[i];
25     }
26 }
27 
28 void copy_ptr(double *s,double *tar,int c){
29     int i;
30     for(i=0;i<c;i++){
31         *(tar+i)=*(s+i);
32     }
33 }

 在函数定义部分也可以使用增量运算符:

1 void copy_arr(double s[],double tar[],int c){
2     int i=0;
3     while(i<c)tar[i]=s[i++];
4 }
5 
6 void copy_ptr(double *s,double *tar,int c){
7     int i=0;
8     while(i<c)*(tar+i)=*(s+i++);
9 }

 

指针与一维数组练习题01

标签:

原文地址:http://www.cnblogs.com/xieshengsi/p/4558378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!