哪位师傅来调教一下这个不争气的程序

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:14:44
#include<stdio.h>
int x=1;
f1(y)
int y;
{return(y=x++);}
f2(x)
{static int y=5;
return(x=y+=x);}
main()
{int y;
x=f1(x);
for(y=1;y<=2;y++);
{printf("%d,%d,",x,y);
printf("%d,",f2(x))};
}
这个程序是我在E书上看来的,书上写着答案为"1,1,6,1,2,7,",但C语言超菜的我凭直觉就看出编译器招待不了(试过果然也),我试着根据提示修改了下,但实在水平相当有限,越改越乱,哪位师傅来调教一下,俺一定认真学。。。。

这才是正确答案
#include<stdio.h>

int x=1;

int f1(int y)
{return(y=x++);}

int f2(int x)
{
static int y=5;
return(x=y+=x);
}

void main()
{
int y;
x=f1(x);
for(y=1;y<=2;y++)
{
printf("%d,%d,",x,y);
printf("%d,",f2(x));
}

}

#include<stdio.h>
int x=1;
static int y=5;
int f1(int y) {
return(y=x++);
}
int f2(int x) {
return(x=(y+=x));
}
void main() {
int y;
x=f1(x);
for (y=1;y<=2;y++) {
printf("%d,%d,",x,y);
printf("%d,",f2(x));
}
}

估计这样应该没问题,这个程序好像想说明名称域、作用域的问题。

以下没语法毛病
#include<stdio.h>
int x=1;
f1(y)
int y;
{return(y=x++);}
f2(x)
{static int y=5;
return(x=y+=x);}
main()
{
int y;
x=f1(x);
for(y=1;y<=2;y++); <