| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1583 人关注过本帖
标题:各位高手帮忙看看这个程序
只看楼主 加入收藏
恩怨情仇
Rank: 1
等 级:新手上路
帖 子:61
专家分:2
注 册:2008-11-8
结帖率:71.43%
收藏
 问题点数:0 回复次数:16 
各位高手帮忙看看这个程序
写入三个数,输出他们可能存在的关系。

main()
{int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("a=%d b=%d c=%d\n",a,b,c);
    if(a!=b)
    {
        if(a>b)
       {
           if(a!=c)
         {
            if(a>c)
            {
                if(b!=c)
                {
                    if(b>c)
                    printf("a>b>c\n");
                    else
                    printf("a>c>b\n");
                }
                else
                printf("b=c<a\n");
            }
            else
            printf("c>a>b\n");
         }
         else
         printf("a=c>b\n");
       }
       else
       {
           if(a!=c)
           {
               if(c>a)
               {
                   if(c!=b)
                   {
                       if(c>b)
                       printf("c>b>a\n");
                       else
                       printf("b>c>a\n");
                   }
                   else
                   printf("c=b>a\n");
               }
               else
               printf("b>a>c\n");
           }
           else
           printf("a=c<b\n");
       }
       
    }
    else
     {
         if(a!=c)
         {
             if(a>c)
             printf("a=b>c\n");
             else
             printf("a=b<c\n");
         }
         else
         printf("a=b=c\n");
     }
}
自己写的,但给人的感觉就是太繁琐了,请高手帮忙改下,重写一个。


×××××××××××××××××××××××××××××××××××××××××
谢谢看过此贴的朋友支持,多谢你们发表意见,看过你们回复的思路后,我重新写了一篇,但不知是不是最简单的,这里发出来,给和我一样的是新手的朋友做参考,同时请高手在做改进。
main()
{int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("a=%d b=%d c=%d\n",a,b,c);
    if(a>b&&b>c)
       printf("a>b>c\n");
     if(a>c&&c>b)
        printf("a>c>b\n");
      if(a==b&&a>c)
        printf("a=b>c\n");
      if(a==b&&a<c)
        printf("a=b<c\n");
      if(b>a&&a>c)
         printf("b>a>c\n");
      if(b>c&&c>a)
         printf("b>c>a\n");
      if(b==c&&b>a)
         printf("b=c>a\n");
      if(b==c&&b<a)
        printf("b=c<a\n");
      if(c>a&&a>b)
        printf("c>a>b\n");
      if(c>b&&b>a)
        printf("c>b>a\n");
      if(c==a&&a>b)
        printf("c=a>b\n");
      if(c==a&&a<b)
       printf("c=a<b\n");
       if(a==b&&b==c)
        printf("a=b=c\n");               
   
}

[[it] 本帖最后由 恩怨情仇 于 2008-11-13 22:37 编辑 [/it]]
搜索更多相关主题的帖子: 对比 
2008-11-13 16:09
呆呆的出行者
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2007-9-17
收藏
得分:0 
日,你真~~~~~~~~~~~~

Made in China!
2008-11-13 16:14
dsr_dbh
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-10-29
收藏
得分:0 
这个程序效率不高吧。。。
2008-11-13 17:15
langzi_feng
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-11-13
收藏
得分:0 
不是繁琐,是相当的繁琐,
我现在也是C语言入门阶段,估计再两个星期,应该能帮LZ解决这个问题
暂时占位学习中!!!!
2008-11-13 18:02
tehi
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-8-15
收藏
得分:0 
条件很多啊!我刚才试着写了几句,没考虑周全。呵呵 不过你可以多用几个if(a>b && b>c)之类的语句,会使程序看着简洁很多。
2008-11-13 19:48
wentaiyou
Rank: 2
等 级:论坛游民
帖 子:68
专家分:17
注 册:2004-12-3
收藏
得分:0 
看看这个能不能适合你要的.

#include "stdio.h"
#define N 3

void fun(int x[][2],int y)
{
  int i,j,m=0,n=0;

  for(j=0;j<y;j++)
     for(i=j;i<y;i++)
        if(x[j][0]<x[i][0])
        {
            m=x[i][0];
            x[i][0]=x[j][0];
            x[j][0]=m;
        
            n=x[i][1];
            x[i][1]=x[j][1];
            x[j][1]=n;
        }
}

void main()
{
  int a[N][2],i;
    for(i=0;i<N;i++)
    {
        scanf("%d",&a[i][0]);
        a[i][1]=i+97;
    }

    for(i=0;i<N;i++)
      if(i==N-1) printf("%c=%d\n",a[i][1],a[i][0]);
      else       printf("%c=%d ",a[i][1],a[i][0]);

     fun(a,N);
     
    for(i=0;i<N;i++)
       if(i==N-1) printf("%c\n",a[i][1]);
       else       printf("%c > ",a[i][1]);


}

假如回到过去.我能做些什么? 还是和现在这样有时间没事情?
2008-11-13 23:38
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
写了个仍然比较复杂的……
程序代码:
#include <stdio.h>
#include <stdlib.h>

#define N 3

int int_comp(int* lv, int* rv)
{
    return *lv - *rv;
}

int main(void)
{
    int i;
    struct
    {
        int v;
        char n;
    } a[N];

    for (i = 0; i < N; i++)
    {
        scanf("%d", &a[i].v);
        a[i].n = 'a' + i;
    }

    qsort(a, N, sizeof(a[0]), (void*)int_comp);

    for (i = 0; i < N; i++)
    {
        putchar(a[i].n);
        if (i == N - 1)
            putchar('\n');
        else if(a[i].v == a[i + 1].v)
            putchar('=');
        else
            putchar('<');
    }
    return 0;
}

2008-11-14 00:36
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
这个可能能简单些?
程序代码:
/*******************************************************************************

        写入三个数,输出他们可能存在的关系。

*******************************************************************************/
#include <stdio.h>
char check(int a,int b)
{
    if(a>b)         return '>';
    else if(a<b) return '<';
    else         return '=';
}
int main(void)
{
    int a,b,c;
    char c1,c2,c3;
    printf("input a b c:\n");
    scanf("%d %d %d",&a,&b,&c);
    c1=check(a,b);
    c2=check(b,c);
    c3=check(a,c);
    printf("a %c b,b %c c,a %c c\n",c1,c2,c3);
    return 0;
}
2008-11-14 03:06
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
LS:是简单,不过仍然没有考虑扩展性……
2008-11-14 10:40
scheelite
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-11-5
收藏
得分:0 
这要是100个数 你 
2008-11-14 11:20
快速回复:各位高手帮忙看看这个程序
数据加载中...
 
   



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

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