回 帖 发 新 帖 刷新版面

主题:用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而不是一次输入,结果正确;

回复列表 (共4个回复)

沙发

scanf("%d,%d",&a,&b);
这东东能编译通过?

板凳


在VC++6.0上运行没有任何问题啊
我估计你是在这里出错啦scanf("%d,%d",&a,&b);
在输入的时候一定要写成2,3这种形式才对,也就是说输入要和scanf里面的格式控制部分一样

3 楼

[quote]
在VC++6.0上运行没有任何问题啊
我估计你是在这里出错啦scanf("%d,%d",&a,&b);
在输入的时候一定要写成2,3这种形式才对,也就是说输入要和scanf里面的格式控制部分一样[/quote]猜想楼主可能把半角/全角的符号整错导致的~~~~

4 楼


谢谢指导,我又试了一下,果然是半角/全角的问题,哎得我忙活了半天!

我来回复

您尚未登录,请登录后再回复。点此登录或注册