问题标题: 酷町堂:1749 横向数字转竖向,我90分

0
0
已解决
张舒斌
张舒斌
中级光能
中级光能

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i,x,temp,ws=0,b;
    cin>>x;
    temp=x;
    while(temp!=0)
    {
        temp=temp/10;
        ws++;
    }
    int a[ws];
    b=ws;
    for(i=1;i<=ws;i++)
    {
        a[i]=x/pow(10,b-1);
        b--;
        if(b==0)
        {
            b=2;
        }
        a[i]=a[i]%10;
    }
    cout<<ws<<endl;
    for(i=1;i<=ws;i++)
    {
        cout<<a[i]<<endl;
    }
    return 0;
}


0
已采纳
方亦欧
方亦欧
新手光能
新手光能

注意这一题的范围:

(0<=n<=9999)

所以要考虑n为0的情况,否则会导致位数输出0并且不输出0这个数(正确输出应为1 换行 0,这样只会输出一个0)。

这个应该不难,只要在读入语句后面判断if(n==0),如果是,就输出1,换行,0;否则再继续执行下面的语句。

cin>>x;
if(x==0)
    cout<<1<<"\n"<<0;
else
{
    temp=x;
    . . . . . .
}

望采纳!

0
0
我要回答