题目描述
输入三个1-9的互不相同的数字,求出所有由这三个数字组成的,且各位数字各不相同的三位数
输入格式 三个1-9的数字,用空格隔开
每行一个三位数,将所有符合条件的数输出,按字典序排列
样例输入
7 8 9样例输出
789 798 ...
#include <iostream>
using namespace std;
void ThreeSort(int &a, int &b, int &c) //三个数从小到大排序
{
if(a > b)
{
a = a ^ b;
b = b ^ a;
a = a ^ b;
}
if(b > c)
{
b = b ^ c;
c = c ^ b;
b = b ^ c;
}
if(a > b)
{
a = a ^ b;
b = b ^ a;
a = a ^ b;
}
}
int main()
{
int a, b, c;
cin>> a >> b >> c;
ThreeSort(a, b, c);
//cout << a << ' ' << b << ' ' << c; //测试代码
int array[3] = {0};
array[0] = a;
array[1] = b;
array[2] = c; //变量名从“不可计算的变成可计算的”
//“有条件的,枚举;没有条件的,创造条件也要枚举”——程设论道
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
for(int k = 0; k < 3; k++)
{
if((i != j)&&(j != k)&&(i != k))
cout << array[i] * 100 + array[j] * 10 + array[k] << endl;
}
return 0;
}
定义array数组部分也可以直接在花括号内用变量初始化(我原以为变量不能作数组下标,所以变量也不能初始化数组。原来前半句是对的,后半句是错的。变量可以初始化数组!)
int array[3] = {a, b, c};
//array[0] = a;
//array[1] = b;
//array[2] = c; //变量名从“不可计算的变成可计算的”
//“有条件的,枚举;没有条件的,创造条件也要枚举”——程设论道