• 全部
  • 问答

对结果不明请指点~~~

KimChen 2003-11-07 09:24:14
#include<stdio.h>

main()
{
int i;
int count(int);
for(i=1;i<=10;i+){
count(i);
}
}

int count(int n)
{
int x;
printf("%d:x=%d,",n,x);
x+=2;
printf("x+2=%d",x);
}
...全文
8 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
KimChen 2003-11-13
如果把i定义在main()函数外~x的值就真的是不确定值了~
回复
KimChen 2003-11-13
而且是跟main()中的i是相同的,改i=1为i=3;count()中的x也跟着变~
回复
KimChen 2003-11-13
各位大哥:
我问的就是因为x没有初始化,所以应该是不确定值,但我怎样试都是同一结果,我不明的就是这点,请解答?

int count(int)在TC2.0中是允许的.程序也是在TC2.0中运行通过的.

count函数是没有意义的.我问的不是这个~.
回复
021850524 2003-11-09
to wmzlq(wmzlq) :
为什么函数声明不可以在函数体内?
我认为是可以的.
回复
TianGuangZao 2003-11-09
to zhaochong12(笨鸟侠) :
......
main()
{
int i;
int count(sizeof(int)); ----------> 语法错误
for(i=1;i<=10;i+){ --------------> i+ ?
count(i);
}
}
......
修改如下:
......
int main(void)
{
int i;
for (i = 1; i <= 10; i++)
count(i);
return 0;
}
楼主没讲 count 函数的功能,就不猜了。
回复
tibetan 2003-11-09
wmzlq(wmzlq) ( ) 信誉:99

函数原形的申明,可以放在函数中申明!
回复
Wolf0403 2003-11-09
int count(int) 是声明下面那个函数。
回复
qufan 2003-11-09
同意,接分
回复
playboyxp 2003-11-09
你的代码有问题
没见过有这样的声明int count(int);
回复
leyt 2003-11-08
同意,接分
回复
sharkhuang 2003-11-08
严重同意
回复
kdush 2003-11-08
上面几位大哥说的很清楚了!
我没啥好说的了!
回复
hslinux 2003-11-07


没有返回值的函数的类型应为void,函数的声明放在main()外而不是放在main()里,没有初始化的变量的值是不可预测的,

回复
zhaochong12 2003-11-07
稍微修改了一下,大概比较符合楼主的意思了~
接分快乐~^_^~

#include<stdio.h>
int count(int n);
main()
{
int i;
int count(sizeof(int));
for(i=1;i<=10;i+){
count(i);
}
}

int count(int n)
{
static int x=0;
printf("%d:x=%d,",n,x);
x+=2;
printf("x+2=%d",x);
}
回复
wu_apple 2003-11-07
#include<stdio.h>
int count(int);
main()
{
int i;
//int count(int);
for(i=1;i<=10;i++)
{
count(i);
}
}

int count(int n)
{
int x = 0;
printf("%d:x=%d,",n,x);
x+=2;
printf("x+2=%d\n",x);
return 1;
}
回复
wmzlq 2003-11-07
几个错误,都在旁边注释了
main()
{
int i;
int count(int); //函数的原型说明不能嵌套在另一函数中
for(i=1;i<=10;i+){
count(i);
}
}
int count(int n)
{
int x;
printf("%d:x=%d,",n,x);//x没有初始化,拿来用就没有意思了
x+=2;
printf("x+2=%d",x);
}

回复
luohualiushui 2003-11-07
编译不会通过
回复
daizh 2003-11-07
你的目的是下面程序所要实现的功能吧。
#include<stdio.h>

void count(int);

void main()
{
int i;

for(i=1;i<=10;i++){
count(i);
}
}

void count(int n)
{
static int x =0;//<---------------静态变量
printf("%d:x=%d,",n,x);
x+=2;
printf("x+2=%d\n",x);
}
回复
ssbull 2003-11-07
你的变量x没有初始化,也没有赋值,打印显示的结果应该不是你要的答案
回复
发帖
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2003-11-07 09:24
社区公告
暂无公告