A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 徐开伟 于 2014-6-6 08:32 编辑

比如 int a = 10;
       int b = 20;
       int c = 30;
怎样样通过一个函数实现输出 c > b >a , 即使值变成了a = 20; b = 10  ;c=5 也会相应的输出a>b>c, 而不是通过交换法输出30>20>10?
刚才忘了说了 是c语言哦

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

8 个回复

倒序浏览
大神块出现~~~{:3_50:}
回复 使用道具 举报
本帖最后由 ゞ导火索゛ 于 2014-6-3 13:35 编辑
  1. import java.util.*;

  2. public class fawef {
  3.         public static void main(String[] args) {
  4.                
  5.                 int a = 9;
  6.                 int b = 10;
  7.                 int c = 7;
  8.                 Map<Character, Integer> map = new HashMap();
  9.                
  10.                 map.put('a', a);
  11.                 map.put('b', b);
  12.                 map.put('c', c);
  13.                 comp(map);
  14.         }
  15.         
  16.         public static void comp(Map<Character, Integer> map){
  17.                 int a = map.get('a');
  18.                 int b = map.get('b');
  19.                 int c = map.get('c');
  20.                
  21.                 String str = "";
  22.                
  23.                 ///a>b>c a>c>b b>a>c b>c>a c>a>b c>b>a
  24.                 if(a>b && a>c)
  25.                 {
  26.                         if(b>c)
  27.                                 str = "a>b>c";
  28.                         else
  29.                                 str = "a>c>b";
  30.                 }
  31.                 if(b>a && b>c)
  32.                 {
  33.                         if(a>c)
  34.                                 str = "b>a>c";
  35.                         else
  36.                                 str = "b>c>a";
  37.                 }
  38.                 if(c>a && c>b)
  39.                 {
  40.                         if(a>b)
  41.                                 str = "c>a>b";
  42.                         else
  43.                                 str = "c>b>a";
  44.                         
  45.                 }
  46.                
  47.                 System.out.println(str);        
  48.                
  49.         }
  50. }
复制代码

回复 使用道具 举报

多谢回答,,,不好意思啊 忘记说了是C语言的,,
回复 使用道具 举报
随便写个排序就行了啊 只有三个数的 话 那更简单 了。。

int num[4],i,j;
num[0] = a;
num[1] = b;
num[2] = c;
for(i = 0; i < 3; i++)
for(j = i+1; j < 3; j++)
if(num[i] < num[j] )
{
  int temp = num[i];
num[i] = num[j];
num[j] = temp;
}

这是一个冒泡排序 你可以试一下  直接打上去的 我也没测 不过应该不会出错  大于号跟小于号互换就可以改变排序方式(大到小或者小到大)
回复 使用道具 举报
本帖最后由 徐开伟 于 2014-6-3 22:22 编辑
夏沫的黄昏′ 发表于 2014-6-3 21:01
随便写个排序就行了啊 只有三个数的 话 那更简单 了。。

int num[4],i,j;

冒泡不行的  比如 a = 30 b = 10 c= 20  冒泡只是输出成 (a=10) < (b=20)<(c=30)  我需要的是输出成
(b=10)<(a=20)<(c=30) 变量值和变量名保持配套不变  我知道可以用很笨的一个一个比较的方法输出成这样,但是一个一个比好麻烦,代码也不好看。 我想问下有没有一个简单点的方法
回复 使用道具 举报
徐开伟 发表于 2014-6-3 22:16
冒泡不行的  比如 a = 30 b = 10 c= 20  冒泡只是输出成 (a=10) < (b=20)

也可以啊 定义一个结构体
struct D{
int num;
char c;
};
用结构体排序
回复 使用道具 举报
夏沫的黄昏′ 发表于 2014-6-4 09:55
也可以啊 定义一个结构体
struct D{
int num;

多谢 原来要用到结构体,我还没学到这个地方来{:3_59:}
回复 使用道具 举报
看不懂好好研究下下。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马