用VC++编译C语言程序需要注意的一个小问题
今天用VC++6.0编译了一段很简单的C程序,发现结果不正确,无奈只好在TC++3.0上试了一下,结果反而是正确的,令我很是郁闷;结果才发现是由于不同的编译系统对程序的书写要求不太一样,现在分享出来,希望大家能够注意这点小区别!求两个数中的最大的一个,原程序如下:
#include <stdio.h>
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max is %d",c);
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return(z);
}
在VC++6.0上运行得不到结果,大家尽管可以试一下。但在TC++3.0上结果是正确的。
程序改正为:
#include <stdio.h>
void main()
{
int max(int x,int y);
int a,b,c;
printf("enter a\n");
scanf("%d",&a);
printf("enter b\n");
scanf("%d",&b);
c=max(a,b);
printf("max is %d",c);
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return(z);
}
即分别输入a,b而不是一次输入,结果正确;