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),写程序必须创建项目吗? 展开
/
*@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),写程序必须创建项目吗? 展开
5个回答
展开全部
不是没调用,而是函数写得不对:
#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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先:有必要创建项目,用项目管理代码时比较好的规范
其次:你怎么确信它没有调用,代码看起来每问题啊。除了这个源码你是不是还有其他源码,所以没有进这个main
不要不创建项目就写代码,不要把所有作业放一个目录
其次:你怎么确信它没有调用,代码看起来每问题啊。除了这个源码你是不是还有其他源码,所以没有进这个main
不要不创建项目就写代码,不要把所有作业放一个目录
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
明显是调用了你第一个函数的,不信你可以在第一个函数里随便输出点东西查看
int *p1 = p+m-1;
int *p2 = p+m-2;
你这里p1永远大于p2,所以根本不会进入while循环里,你这里哪怕调用了上面的函数也是无意义的
int *p1 = p+m-1;
int *p2 = p+m-2;
你这里p1永远大于p2,所以根本不会进入while循环里,你这里哪怕调用了上面的函数也是无意义的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(p1 < p2)
比较指针的大小,而不是所指向的值的大小?
int *p1 = p+m-1;
int *p2 = p+m-2;
没用上n,是否有问题?
学一学调试的基本操作吧
比较指针的大小,而不是所指向的值的大小?
int *p1 = p+m-1;
int *p2 = p+m-2;
没用上n,是否有问题?
学一学调试的基本操作吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询