C语言指针编程题,求助大神解答

C语言指针编程题,求助大神解答,第1张

#include<stdio.h>

int a[200]

void rotateArray(int *a,int n,int m){

m%=n   //这句是防止m大于n 结果会不正确的情况

for(int i=mi<n++i)scanf("%d",&a[i])

for(int i=0i<m++i)scanf("%d",&a[i])

}

int main(){

int n,m

scanf("%d%d",&n,&m)

rotateArray(a,n,m)

printf("%d",a[0])

for(int i=1i<n++i)printf(",%d",a[i])

return 0

}

第1题

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

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

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

#include<stdio.h>

void swap(int *p1,int *p2)

{

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

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

}

void main(void)

{

int a,bint *pt1,*pt2

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

pt1=&apt2=&b

if(a<b) swap(pt1,pt2)

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

}

第2题

第一空填 -1

第二空填 *sn

#include<stdio.h>

void fun(float *sn,int n)

{

float s=0.0,w,f=-1.0

int i=0

for(i=0i<=ni++)

{

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=0i<4i++)

{

for(j=0j<4j++) 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=0i<4i++)

{

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

printf("\n")

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11111296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存