| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2596 人关注过本帖
标题:请问下我写的这个求三数中最小数的c程序错在哪里?
只看楼主 加入收藏
pengyi
Rank: 1
等 级:新手上路
帖 子:66
专家分:1
注 册:2005-8-30
收藏
得分:1 
以下是引用wdr1991在2010-2-25 01:09:13的发言:

这是一个求三个数中最小的数,我想让它输入小数和整数都能求得最小数,但为什么求得的结果不正确?请问一下问题出在什么地方?谢了!

#include<stdio.h>
void main()
{
 float min(float x,float y,float q);
 floa ...
浮点数不能直接比较大小.

左脑颓废

2010-02-27 22:24
wanlxtx
Rank: 2
来 自:河南郑州
等 级:论坛游民
威 望:1
帖 子:45
专家分:84
注 册:2010-2-6
收藏
得分:1 
按你的思路,
#include<stdio.h>
void main()
{
float min(float x,float y,float q);
float a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
d=min(a,b,c);
printf("min=%d\n",d);
return 0;
}

int min(float x,float y,float q)
{
float z;
         if(x<y,x<q)z=x;
   else if(y<x,y<q)z=y;
   else if(q<x,q<y)z=q;
   return(z);
}
这样就行,就是在第一个程序段加了个return 0;
更简单可以这样写
#include<stdio.h>
void min(float x,float y,float q)
{
   float z=0;
   if(x<y,x<q)z=x;
   else if(y<x,y<q)z=y;
   else if(q<x,q<y)z=q;
   printf("min=%f\n",z);
}
void main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
printf("min=%d\n",z);
}
2010-02-28 10:21
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:1 
程序代码:
#include <stdio.h>
float min(float x, float y, float z)
{
        return x < (y < z ? y : z) ? x : (y < z ? y : z);
}
int main(void)
{
        float x, y, z;
        while (scanf("%f%f%f", &x, &y, &z)) {
                printf("Result: %f\n", min(x, y, z));
        }
        return 0;
}


[ 本帖最后由 CodeWays 于 2010-2-28 10:55 编辑 ]

胖胖的我~
2010-02-28 10:48
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 
汗。。。和LS的LS的LS代码重复了。。。

胖胖的我~
2010-02-28 10:58
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 
貌似三目运算符没有if...else执行效率高

胖胖的我~
2010-02-28 11:00
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 
反汇编后多了两次mov操作。。。

胖胖的我~
2010-02-28 11:01
chun8me
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2010-2-28
收藏
得分:1 
学野
2010-02-28 11:35
liqingyang
Rank: 2
等 级:论坛游民
帖 子:47
专家分:39
注 册:2010-2-24
收藏
得分:1 
求三个数最大的,楼主的算法太复杂吧???

#include<stdio.h>
main()
{
    int a,b,c,max;
    printf("plese input number:\n");
    scanf("%d %d %d",&a,&b,&c);
    printf("max=%d",max=a>b?a:b>c?b:c);
}
2010-02-28 15:29
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 
以下是引用liqingyang在2010-2-28 15:29:15的发言:

求三个数最大的,楼主的算法太复杂吧???

#include
main()
{
    int a,b,c,max;
    printf("plese input number:\n");
    scanf("%d %d %d",&a,&b,&c);
    printf("max=%d",max=a>b?a:b>c?b:c);
}
The program can AC?

胖胖的我~
2010-02-28 16:08
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 

胖胖的我~
2010-02-28 16:12
快速回复:请问下我写的这个求三数中最小数的c程序错在哪里?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018989 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved