关于#whileanddowhile#的问题,如何解决?

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。
输入样例-600
输出fu liu ling ling

#include<iostream>
#include<string>
using namespace std;
int main(){
    
    string a[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    int z;
    int b[20];//存放整数的每位数字。
    cin>>z;
    int i=0;
    int count=0;//记录整数的一共有都少位。
    //分开讨论0.
    if(z==0) cout<<a[z];
   
    if(z<0) {
        cout<<"fu ";
        z=-z;
    }
      //循环用于存放整数的每个位。
    while(z){
            b[i]=z%10;
            z=z/10;
            count++;
            i++;
        }
     //输出结果。
        for(i=count-1;i>=0;i--){
            cout<<a[b[i]];
            if(i!=0) cout<<" ";//注意最后并没有空格。
        }
    return 0;
}

有帮助的话采纳一下哦!