2 programonky programonky 于 2014.11.16 19:09 提问

本人编程初学,刚刚编写了一个整数的比较大小的小程序,希望大神帮我看看

希望大神帮我看一下是不是可以比较整数的所有情况,而且此算法有点复杂,可以怎样简化
#include

int main()
{
int compare(int a,int b);
int x,y,c,g;
printf("请输入两个整形数用于比较大小:\n");
scanf("%d,%d",&x,&y);
c=compare(x,y);
if(c==g)
printf("error\n");
else
printf("较大的数为 %d \n",c);
return 0;
}

int compare(int a,int b)
{
int k,g;
if(a-b>0)
k=a;
if(a-b<0)
k=b;
if(a-b==0)
k=g;
return (k);
}

6个回答

CodeHeng
CodeHeng   2014.11.17 09:44

问题很多O_O!
你那个声明int compare(int a,int b);能放到全局上吗?
if(c==g) 这个根本就是乱来的compare(x,y)这个函数的g根本就不会传出来,基础有待提高!
两个数求大者一句话就行了:max = a>b?a:b
建议多看下基础的书籍

max_min_
max_min_   Rxr 2014.11.18 09:27

直接
int compare(int a,int b)
{
return a- b;
}

caozhy
caozhy   Ds   Rxr 2014.11.18 17:38

g是什么?如果你没有初始化,那么当a==b的时候,返回的结果是不确定的。

YLOIHyl
YLOIHyl   2014.11.18 20:01
//孩子,你的路还很长。

#include<stdio.h>
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);  //输入
    if(a>b) printf("%d",a);  //a比b大
    else printf("%d",b);     //a小于等于b
    return 0;
}
//真的,就这么简单,还可以更短(用?:运算符)
zjl19910605
zjl19910605   2014.11.19 18:17

思路是合适的,享用跟简单的方式,调库函数吧

eagleyan
eagleyan   Rxr 2014.12.01 08:25

#define max(a,b) \
({ typeof (a) a = (a); \
__typeof
_ (b) _b = (b); \
_a > _b ? _a : _b; })

这里使用macro,可以支持不同数据类型。
对于YLOIHyl在这里说“你的路很长”,我的建议是不用写这种东西,因为我们每个人到perfect都还有很长的路要走,大家把自己觉得最好的代码贴出来共享,互相学习,共同进步。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!