注册 登录
编程论坛 新人交流区

刚学C的新手提问下!

switch 发布于 2007-10-23 06:23, 575 次点击
#include "stdio.h"
#include "conio.h"
int max(int x,int y);
{int z;
if(x>y)z=x;
else z=y;
return(z);
}
void main()
{int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
}
getch();
为什么编译不能通过? 帮我看看!

[此贴子已经被作者于2007-10-23 6:31:46编辑过]

21 回复
#2
wwhhjj2007-10-23 08:35
getch();怎么在函数外呢?
#3
C语言的深度2007-10-23 09:10

说明语法错误
我帮你找找看``

#4
psp03752007-10-23 09:16
int max(int x,int y) /* 在这里你多了个 分号,把函数看成一个语句了*/
{ int z;
if(x>y) z=x;
else z=y;
return(z);
}
main()
{int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
getch();
} /*在这里你少个大括号 ,主函数没有结束的地方*/
#5
C语言的深度2007-10-23 09:21
其实没有想四楼说的那么多错误
只要改下int max(int x,int y)后面哪个分号就可以了
你运行下看看是不是没有错
#6
psp03752007-10-23 09:21
这个函数是 谭浩强 C 第二版经典 开头 注意: 在键盘输入任意数值是要这样" 1,2 "不要这样" 1 2 " 可以试试 结果截然不同
以上已经 成功 ,希望新手在学习的时候 抄程序也要 看仔细了.
#7
psp03752007-10-23 09:25
五楼可以再调试下, 如果 getch()放在外面 你就无法在输入数值后看到屏幕的暂停
#8
yanguobo2007-10-23 09:26

就是
getch();的问题

#9
C语言的深度2007-10-23 09:28

getch()放在外面对这个程序没什么影响的
我试过了
运行完后我输出两个整型 11,22
最后得到的结果还是max=22
所以getch()后面其实不加和没加都没什么关系的

#10
C语言的深度2007-10-23 09:32
如果在getch()后面加个}也是可以的
但就必须去掉getch()前面的}了
在键盘输入任意数值是要这样" 1,2 "不要这样" 1 2 " 可以试试 结果截然不同
在键盘输入1,2和1 2 得出的结果显然是不同的 这个我赞同`因为这是事实
#11
C语言的深度2007-10-23 09:33

程序改为这样也是可以的
#include "stdio.h"
#include "conio.h"
void main()
{int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
}
getch();


int max(int x,int y)
{int z;
if(x>y) z=x;
else z=y;
return(z);
}

#12
C语言的深度2007-10-23 09:38

int a,b,c; 先定义变量下
然后输入这个变量的是整型
再把变量给C去比较!
输出C的比较结果

下面厕是用X,Y代表a,b
设Z为比较的结果
如果X大于Y 则Z=X 否则Z=Y
在返回就行了
这个程序是求两个数的最大者,getch()也是可以不写的 完全也是可以得出结果的吧`
你去试试看

#13
switch2007-10-23 09:41

恩,谢谢了! 我刚想问.都给你说了.呵呵
书上说,程序都是从MAIN 开始执行的.我正想把两段码位置互换。

#14
zhangyg_cn2007-10-23 14:03
#include "stdio.h"
#include "conio.h"
int max(int x,int y)//去掉这个“;”
{int z;
if(x>y)z=x;
else z=y;
return(z);
}
void main()
{int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
getch();//这放置到Main 里面
}
#15
zhulinfeng2007-10-23 14:31
#16
linsd20012007-10-23 15:57
回复:(switch)刚学C的新手提问下!

以上几楼的说得都没有错,但C语言的语法好像是以“}”为结束的,若把一个函数放在最后一个“}”外,我想这个函数也是不能通过编译的,这个问题可以通过逐步执行来观察。而且定义函数时的确是多了一个“;”,这是语法错误。其余的也应没有什么错误,只是在用输入函数scanf时一定要注意自己在函数中所定义的格式。

#17
appleaon2007-10-23 16:46
我在运行int max(int x,int y)时,它提示有个错误,是什么呢?不是分号的问题
#18
rayxiang2007-10-23 16:49
   我在C++编译了以下,,,上面说是declaration terminated incorrectly
#19
rayxiang2007-10-23 16:51
如果把最后的getch()去掉的话    就可以通过了
#20
阳阳和圆圆2007-10-23 17:07

9楼能得到22说明程序已经正确了

#21
fengjianppt2007-10-23 20:12
getch();应该在里面吧
#22
yanlei7772007-10-24 00:18
应该把;去掉吧,还有getch 放主函数里面吧
1