哪位大神帮我看一下这个C语言题目啊,我提交的时候,显示答案错误,但是,明明没错啊

main() {int m,i=0,t,a[5]; scanf("%d",&m); for(;m;m/=10) {a[i]=m%10; i++; } t=i; printf("%d\n",i); for(i--;i>=0;i--) printf("%d ",a[i]); printf("\b\n"); for(i++;i<t;i++) printf("%d",a[i]); } /************************************************************** Problem: 1009 User: 160920009 Language: C Result: 答案错误 ****************************************************************/

#include<stdio.h>
int main() 
{
    int m,i=0,t,a[5]; 
    scanf("%d",&m); 
    for(;m;m/=10) 
    {
        a[i]=m%10; 
        i++; 
    }
    t=i; 
    printf("%d\n",i); 
    //这里需要修改,示例中i是5,所以不需要赋初值,而且输出数组最后一项应该是a[4]
    for(;i>0;i--) 
    printf("%d ",a[i-1]); 
    printf("\b\n"); 
    for(;i<t;i++) 
    printf("%d",a[i]); 
    return 0;
}

追问

大神您 好,我还是有一点点的不懂,我的明明也对了啊,我刚才在纸试了一下,我的和你的结果都是对的啊

刚才我试了我的程序几次,结果都没错啊

追答

在纸?啥意思?
你的确实没错,但你看
for(i--;i>=0;i--)
这个需要进行i--这步运算。
而for(;i>0;i--)则比上面这个少了一步运算,所以这么写更好。

追问

哦,原来是少执行一次啊,这也可以使程序更简练

大神,等等,我试试,看能不能成功


还是答案错误,怎么 回事,那个烂网站,难道是学校的网站有点问题

温馨提示:答案为网友推荐,仅供参考
相似回答