MOOC清华《程序设计基础》期末考试第4题:求三位数的组合

来源:互联网 发布:上海交通卡充值软件下载 编辑:程序博客网 时间:2024/05/29 19:30

题目描述

输入三个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; //变量名从“不可计算的变成可计算的”//“有条件的,枚举;没有条件的,创造条件也要枚举”——程设论道 


阅读全文
0 0