C语言中函数调用的问题? 5

#include<stdio.h>/*@paramp保存的是要处理的地址*@paramm从m位置开始*@paramn一共n个元素*/voidinverse(int*p,i... #include<stdio.h>
/
*@param p 保存的是要处理的地址
*@param m 从m位置开始
*@param n 一共n个元素
*/
void inverse(int *p,int m, int n)
{
int *p1 = p+m-1;
int *p2 = p+m-2;
int t = 0;
while(p1 < p2)
{
//交换p1,p2指向单元的值
t = *p1;
*p1 = *p2;
*p2 = t;
p1++;
p2--;
}
}
int main(int argc, char* argv[])
{
int array[10] = {1,2,3,4,5,6,7,8,9,10};
int m = 3;
int n = 7;
inverse (&array[0],m,n);
int i = 0;
for(i = 0; i < 10; i++)
{
printf("%d\t",array[i]);
}
return 0;
}编译运行后,结果根本没有调用我第一个函数。求求大神们解答。说根本没有调用这个函数,说调用其他地方去了,我直接创建源代码写的(DEV),写程序必须创建项目吗?
展开
 我来答
格里编程办公技巧
科技发烧友

2021-11-20 · 编程、办公知识分享与学习
格里编程办公技巧
采纳数:434 获赞数:877

向TA提问 私信TA
展开全部

关于c语言中函数调用问题解答如下:

首先如果是编译的这个代码那这个函数肯定被调用了,让你觉得没有调用是因为while循环没有被执行。

图中红色框内代码p1和p2经过赋值p1是肯定大于p2所以不满足while.的条件直接退出了函数。

你需要看看要实现啥在改一下。

听不清啊
高粉答主

2021-11-21 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

不是没调用,而是函数写得不对:

#include<stdio.h>

void inverse(int *p,int m, int n)

{ int *p1 = p+m-1;

  int *p2 = p+n-1;

  int t;

  while(p1 < p2)

  {

//交换p1,p2指向单元的值

    t = *p1;

    *p1 = *p2;

    *p2 = t;

    p1++;

    p2--;

  }

}

int main(int argc, char* argv[])

{ int array[10] = {1,2,3,4,5,6,7,8,9,10};

  int m = 3;

  int i,n = 7;

  inverse (&array[0],m,n);

  for(i = 0; i < 10; i++)

  { printf("%d\t",array[i]);

  }

  return 0;

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arongustc
科技发烧友

2021-11-20 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5758万
展开全部
首先:有必要创建项目,用项目管理代码时比较好的规范
其次:你怎么确信它没有调用,代码看起来每问题啊。除了这个源码你是不是还有其他源码,所以没有进这个main

不要不创建项目就写代码,不要把所有作业放一个目录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神官0麦依0
科技发烧友

2021-11-20 · 有一些普通的科技小锦囊
知道小有建树答主
回答量:1145
采纳率:75%
帮助的人:364万
展开全部
明显是调用了你第一个函数的,不信你可以在第一个函数里随便输出点东西查看
int *p1 = p+m-1;
int *p2 = p+m-2;
你这里p1永远大于p2,所以根本不会进入while循环里,你这里哪怕调用了上面的函数也是无意义的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最大的宝宝
2021-11-20 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:391万
展开全部
while(p1 < p2)
比较指针的大小,而不是所指向的值的大小?
int *p1 = p+m-1;
int *p2 = p+m-2;
没用上n,是否有问题?
学一学调试的基本操作吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式