自写思路:分为有0和没有0两种情况输出
#include<iostream>
using namespace std;
int main()
{
int a[10];
for(int i=0;i<10;i++) cin>>a[i];
if(a[0]==0){ //没有0的情况
for(int i=1;i<10;i++){
while(a[i]!=0){
cout<<i;
a[i]--;
}
}
}
else { //有0的情况
for(int i=1;i<10;i++){
if(a[i]!=0){
cout<<i;
a[i]--;
break; //找到0之外的第一个数字输出,退出循环
}
}
while(a[0]!=0){ //输出0
cout<<0;
a[0]--;
}
for(int i=1;i<10;i++){ //输出其他数字
while(a[i]!=0){
cout<<i;
a[i]--;
}
}
}
return 0;
}
方法2 简化代码
#include<iostream>
using namespace std;
int a[10]={0};
int main(){
int m[10]={10};
for(int i=0;i<10;i++){
cin>>a[i];
}
if(a[0]!=0){
for(int t=1;t<=9;t++){
if(a[t]!=0){
cout<<t;
a[t]--;
break;
}
}
}
for(int j=0;j<=9;j++){
while(a[j]>0){
cout<<j;
a[j]--;
}
}
}