c语言函数指针数组的例题 c语言函数指针数组用法

C语言,做4个题,用数组和指针

#includestdio.h

成都创新互联公司专业为企业提供岑溪网站建设、岑溪做网站、岑溪网站设计、岑溪网站制作等企业网站建设、网页设计与制作、岑溪企业网站模板建站服务,十余年岑溪做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

//第一题函数,数组形参的复制

void copy_array( double source[], double destination[], int len)

{

int i=0;

for(; ilen; i++)

{

destination[i]=source[i];

}

}

//第一题函数,指针形参的复制

void copy_ptr( double *source, double *destination, int len)

{

int i=0;

for(; ilen; i++)

{

*(destination+i) = *(source+i);

}

}

//第二题函数,最大值最小值之差

double dif( double array[], int len )

{

double max=*array, min=*array;

int i=0;

for(; ilen; i++)

{

if( max*(array+i) )

max = *(array+i);

else

min = *(array+i);

}

return (max-min);

}

//第四题函数,两个等长数组相加,保存在第三个数组

void add( double result[], double arg1[], double arg2[], int len )

{

int i=0;

for(; ilen; i++)

{

*(result+i)=*(arg1+i)+*(arg2+i);

}

}

int main(void)

{

double source[4] = {1,2.3,4.5,6.7};

double destination1[4];

double destination2[4];

double destination3[3][4];

double result[4];

int i, j;

//验证第一题,拷贝两个数组并分别输出

copy_array(source, destination1, 4);

copy_ptr(source, destination2, 4);

printf("1\n");

for(i=0; i4; i++)

{

printf("%lf ", destination1[i]);

}

printf("\n");

for(i=0; i4; i++)

{

printf("%lf ", *(destination2+i));

}

printf("\n\n");

//第一题验证结束

//第二题验证,打印数组source最大值最小值之差

printf("2\n");

printf("%lf\n\n", dif(source, 4));

//第二题验证结束

//第三题验证,将source数组的成员分次拷贝到二维数组destination3中,并打印

for(i=0; i3; i++)

{

copy_ptr(source, destination3[i], 4);

}

printf("3\n");

for(i=0; i3; i++)

{

for(j=0; j4; j++)

{

printf("%lf ", *(*(destination3+i)+j));

}

printf("\n");

}

printf("\n\n");

//第三题验证结束

//第四题验证,将destination1与destination2相加并输出

add( result, destination1, destination2, 4);

printf("4\n");

for(i=0; i4; i++)

{

printf("%lf ", result[i]);

}

//第四题验证结束

return 0;

}

我很懒,所以把所有的函数和验证都写到一个文件里了,如果实在需要,你自己分开一下吧,也就是多声明几个数组而已。

第三题好像是这样,哈哈,因为“the copy functions from exercise 5”我不知道是不是指第一题的函数之一,而且sub-arrays也不知道要不要转置。

C语言程序设计指针雨数组三道题?

第1题

原程序不能实现pt1指向a和b的大者,pt2指向小者的目的,

应该把指向int型的指针p改成int型,只需改变相应的交换程序,其它不用变.

改正后的完整的C语言程序如下(改动的地方见注释)

#includestdio.h

void swap(int *p1,int *p2)

{

int p;//这里定义int型变量p

p=*p1;*p1=*p2;*p2=p;//这里改变相应的交换程序

}

void main(void)

{

int a,b;int *pt1,*pt2;

scanf("%d,%d",a,b);

pt1=a;pt2=b;

if(ab) swap(pt1,pt2);

printf("%d,%d \n",*pt1,*pt2);

}

第2题

第一空填 -1

第二空填 *sn

#includestdio.h

void fun(float *sn,int n)

{

float s=0.0,w,f=-1.0;

int i=0;

for(i=0;i=n;i++)

{

f=-1*f;//这里第一空填 -1

w=f/(2*i+1);

s+=w;

}

*sn=s;//这里第二空填 *sn

}

int main()//补充的主函数

{

float sn;

int n=10;

fun(sn,n);

printf("数列的前%d项计算结果S=%f",n+1,sn);

return 0;

}

第3题

分析 用二维数组指针p打印二维数组的每一行字符串

#include "stdio.h"

main()

{

char a[4][5]={"ABCD","EFGH","IJKL","MNOP"};

char (*p)[5];

int i,j;

p=a;

for(i=0;i4;i++)

{

for(j=0;j4;j++) printf("%c",*(*(p+i)+j));

printf("\n");

}

}

将程序第9行中的"%c"改成"%s",则改变后的程序如下(改动的地方见注释)

#include "stdio.h"

main()

{

char a[4][5]={"ABCD","EFGH","IJKL","MNOP"};

char (*p)[5];

int i,j;

p=a;

for(i=0;i4;i++)

{

printf("%s",*(p+i));//这里去掉for_j循环

printf("\n");

}

}

C语言 数组和指针编程题?

// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"

void upCopy(char* new1, char* old)

{

while (*old)

{

if (65=*old *old= 90) *new1++=*old;

old++;

}

*new1=0;

}

int main()

{

char s1[140]; //="";

char s0[]="foiwABEifjCDB";

upCopy(s1, s0);

printf("(%s%s",s1,")");

getchar();

return 0;

}


当前文章:c语言函数指针数组的例题 c语言函数指针数组用法
分享URL:http://myzitong.com/article/doohddg.html