华为机试题,好吧,我都没收到上机通知。题目如下:
代码如下
void PrintArray(char a[][12],int size)
{
int i,j;
for (i=size-1;i>=0;i--)
{
for (j=0;j<size;j++)
{
cout<<a[i][j];
}
cout<<endl;
}
}
void PrintRemainingPower(char a[][12],int n)
{
if(n<0 || n>100)
return;
int i,j;
int remin=n%10; //余数
int div=n/10; //除数
if (div!=0)
{
for (i=1;i<=div;i++)
{
for (j=1;j<=10;j++)
{
a[i][j]='+';
}
}
}
if (remin!=0)
{
for (j=1;j<=remin;j++)
{
a[1+div][j]='+';
}
}
cout<<"剩余电量"<<n<<"%如下:"<<endl;
PrintArray(a,12);
}
void main()
{
const int size=12;
char a[size][size];//由下往上存贮电量,所以输出时数组a倒着输出
int i=0,j=0;
//四个角初始化为'+'
a[0][0]='+';
a[0][size-1]='+';
a[size-1][0]='+';
a[size-1][size-1]='+';
//第一列和最后一列初始化为'|'
for (i=1;i<size-1;i++)
{
a[i][0]='|';
a[i][size-1]='|';
}
for (i=0;i<size;i++)
{
for (j=1;j<size-1;j++)
{
a[i][j]='-';
}
}
PrintArray(a,size);
cout<<"以上为初始化!"<<endl;
cout<<"========================================="<<endl;
PrintRemainingPower(a,66);
}