标题:请教 用if编写程序
只看楼主
a3314279
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2011-2-24
结帖率:100%
已结贴  问题点数:10 回复次数:23 
请教 用if编写程序
编写一个程序 ,从用户输入的4个整数中找出最大值和最小值:
enter four integers:21  43  10  35
largest:43
smallest:10
尽可能少用if语句。 最好是用4条if语句。
还有,如何在字符下加下划线, 就是要 我们输入在下划线里。
拜托各位大哥了。
额,可能没说清楚,这里的要求是只用if语句。想for之类的不能用。

[ 本帖最后由 a3314279 于 2011-2-24 21:30 编辑 ]
搜索更多相关主题的帖子: 下划线 最大值 用户 
2011-02-24 20:47
format123
Rank: 2
等 级:论坛游民
帖 子:35
专家分:60
注 册:2010-11-26
得分:0 
尽可能少用又要用4条,#include "stdio.h"
main()
{
    int a[4],max,min,i;
printf("four");
for(i=0;i<4;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=0;i<4;i++)
{
if(a[i]>max)
    max=a[i];
if(a[i]<min)
    min=a[i];
}

printf("max=%d,min=%d",max,min);


}
2011-02-24 21:01
丞相杀手
Rank: 6Rank: 6
等 级:侠之大者
帖 子:203
专家分:462
注 册:2011-1-11
得分:0 
程序代码:
int main(void)
{
    int max,min,x,i;
    printf("enter four integers:");
    scanf("%d",&x);
    max = x;
    min = x;
    for(i=0; i<3; i++)
    {
        scanf("%d",&x);
        if(x > max)
            max = x;
        else if(x < min)
            min = x;
    }
    printf("largest:%d\nsmallest:%d",max,min);
}


随手写的,伪代码,不过算法应该明白了

斗不过疯子,不参与争论。
2011-02-24 21:06
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
菜鸟初学,还望指教。
root@~ #cat mm.c
程序代码:
#include <stdio.h>

int main (void) {

        int x,y,z,w,max,min;

        printf ("enter four digit:");
        scanf ("%i %i %i %i",&x,&y,&z,&w);

        max=w>(x>y?(x>z?x:z):(y>z?y:z))?w:(x>y?(x>z?x:z):(y>z?y:z));
        min=w<(x<y?(x<z?x:z):(y<z?y:z))?w:(x<y?(x<z?x:z):(y<z?y:z));

        printf ("max is %i\n",max);
        printf ("min is %i\n",min);

        return 0;

}


编译并测试:
root@~ #gcc mm.c -o mm
root@~ #./mm
enter four digit:12 34 56 90
max is 90
min is 12
root@~ #./mm
enter four digit:12 -12 0 18
max is 18
min is -12
root@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-24 22:27
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
得分:0 
#include<stdio.h>

int main()
{
    int largest,smallest,a,b,c,d;
    printf("请输入四个数:a,b,c,d \n");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
        largest=(a>b?a:b)>(c>d?c:d)?(a>b?a:b):(c>d?c:d);
    smallest=(a<b?a:b)<(c<d?c:d)?(a<b?a:b):(c<d?c:d);
    printf("largest=%d\tsmallest=%d\n",largest,smallest);
    return 0;
}  
你看这样行不。。一个if 也没用。。
2011-02-24 22:37
a3314279
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2011-2-24
得分:0 
回复 2楼 format123
恩,这个程序可以得出结论。但是a[i]这个格式暂时还没学到。
所以书上的要求应该是只用if。不知可有解法?
2011-02-24 22:50
a3314279
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2011-2-24
得分:0 
回复 3楼 丞相杀手
说实话,看上去好像挺简单的,但是我还不是非常懂!!
2011-02-24 22:53
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
纯if的判断, 菜鸟初学,仅供参考。
root@~ #cat maxmin.c
程序代码:

#include <stdio.h>

int main (void) {

        int a,b,c,d,max,min;

        printf ("enter four digit:");
        scanf ("%i%i%i%i",&a,&b,&c,&d);

//get maximum

        max=a;

        if(b>max) {
                max=b;
        }
        if(c>max) {
                max=c;
        }
        if(d>max) {
                max=d;
        }

        printf ("maximum is %i\n",max);

//get minimum

        min=a;

        if(b<min) {
                min=b;
        }
        if(c<min) {
                min=c;
        }
        if(d<min) {
                min=d;
        }

        printf ("minimum is %i\n",min);

        return 0;

}

编译并测试:
root@~ #
root@~ #gcc maxmin.c -o maxmin
root@~ #./maxmin
enter four digit:12 34 56 78
maximum is 78
minimum is 12
root@~ #./maxmin
enter four digit:0 1 2 -12
maximum is 2
minimum is -12
root@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-24 23:14
a3314279
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2011-2-24
得分:0 
回复 5楼 刘定邦
额,这个程序也可以,不过最好是用if的,因为书上要求是用if,我没办法压缩到只用4个if。。。
2011-02-24 23:17
a3314279
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2011-2-24
得分:0 
回复 8楼 ansic
恩,很好了,如果可以压缩到只用4个if就更好了。
2011-02-24 23:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-332727-1-1.html




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

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