输入三个三位数a,b,c,请你从a中抽出百位数字,b中抽出十位数字,c中抽出个位数字,重新组合成一个最小的三位数。
如何处理某一位是0的情况?
#include
using namespace std;
int main(){
int a,b,c,ge,shi,bai,ans[10];
cin>>a>>b>>c;
ge = c % 10;
shi = (b / 10) % 10;
bai = (a / 100) % 10;
ans[1] = bai*100+shi*10+ge;
ans[2] = bai*100+shi+ge*10;
ans[3] = bai*10+shi*100+ge;
ans[4] = bai*10+shi+ge*100;
ans[5] = bai+shi*100+ge*10;
ans[6] = bai+shi*10+ge*100;
sort(ans,ans+6);
cout<
按照你的代码,那就最后遍历一下数组,输出第一个大于等于100的数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,ge,shi,bai,ans[10];
cin>>a>>b>>c;
ge = c % 10;
shi = (b / 10) % 10;
bai = (a / 100) % 10;
ans[1] = bai*100+shi*10+ge;
ans[2] = bai*100+shi+ge*10;
ans[3] = bai*10+shi*100+ge;
ans[4] = bai*10+shi+ge*100;
ans[5] = bai+shi*100+ge*10;
ans[6] = bai+shi*10+ge*100;
sort(ans,ans+6);
for(int i=1; i<=6; i++)
{
if(ans[i] >= 100)
{
cout<<ans[i]<<endl;
break;
}
}
return 0;
}
排序干嘛?
int min = 100;
for(int i=1; i<=6; i++) {
if (ans[i] < min && ans[i] >= 100) {
min = ans[i];
}
}
printf("%d\n", min);