189 8069 5689

c语言为什么函数矛盾 c语言中的函数和数学中的函数有什么关系

X的多次方函数C语言程序,为什么老是警告?赋值不对?还是重复

楼主是程序新手吧?

创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为自流井企业提供专业的网站设计制作、网站建设自流井网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

问题是这样的

你调试下就看出来了

在power函数中你重新定义了一个int

型的

m变量

那么这个变量没有被赋予初值(在调试的时候你可以看到),这样的话在在循环中就存在逻辑矛盾了。

float

power(double

x,int

n)

{

int

m

=

0;

double

a;

for(m;mn;m++)

x*=x;

a=x;

return

a;

}

这样就对了

另外

还有一个方法

在你的头文件里写#includemath.h

然后使用这个函数

pow(x,n);

就是x的n次方了。

C语言 函数中的变量可以是内部静态变量 与后一句矛盾了。为什么?

不可以只有全局变量才可以静态变量,只是里面的值不会因为函数调用结束而还原

@C语言大神:为啥函数会【conflicting types】呢,它们不是完全一样的类型吗?

你在main函数声明 int trans(int,int); 2个参数都是int,而 下面 确是 int trans(int a[][3],int b[][3]) ,参数是int数组,这明显不是一样的类型呀。而且你没有调用 trans函数,你写来干嘛的

c语言中出现函数矛盾怎么办,例如pop(s,x)用c语言编译后出现错误,这是数据结构题。

什么叫函数矛盾?

你用的是C++编译环境吗?

改成.c就行了

标准C中没有pop这个函数

如果要用C++

#includestack

有pop

push

数据结构的模板

c语言有关函数调用问题

为什么 a1输出的是 1? f();上面不是有 int a=2么?

答:函数f1无法访问main里的a,因此f1里printf是打印的是全局变量的a。

main里虽然有a=2,但由于是int a=2,其实是main内部的一个局部同名变量,和全局的a是两个独立的变量。因此main里a=2不影响全局的a=1。

同理,第二个题  cube();前是因为有 x=5才得125么?

答:没错。

两者是否矛盾?

答:不矛盾。第二个程序里main中的x前没有写int,意味着这不是“定义一个新的x”而是“使用已有的x”。如果你在第二个main的x=5改成int x=1,那么第二个程序输出的就是1*1*1也就是1了。

总结就是:

全局变量在任何函数中都可以修改。比如第二个程序里的x。

如果你在一个函数中重新定义(!)了和全局变量同名的变量(比如第一个程序里的a),那个内部定位的变量和全局变量是两个独立的变量。在该函数中变量a指的是函数内部定义的a。无法访问全局变量的a了。这叫“变量的覆盖”。

如果你在一个函数中没有重新定义(!)和全局变量同名的变量(比如第二个程序,只是用到了x,没有定义x),那么你的操作就是针对全局变量的。

C语言菜鸟一个,请大佬帮忙看看?

不是类型矛盾,是你的函数定义用了结构体类型,但是类型定义在后面。

把结构体的定义放到函数定义之前。


当前名称:c语言为什么函数矛盾 c语言中的函数和数学中的函数有什么关系
当前链接:http://jkwzsj.com/article/dodgohe.html

其他资讯