输出总是多一位数多出来的数为零

#include

int main(){
int a,b=0,sum,n;
scanf("%d %d",&a,&n);
if(a=<0||n=<0)
printf("-1");
else
for(int i=0;i
{b=10*b+a;
sum=sum+b;}
printf("%d",sum);

return 0;

}
输入-1 0的时候输出的一直是-10
如果把print里面改为-1.0,输出就一直为-1.00

img

你确定运行时不会报错?

#include <stdio.h>

int main()
{
    int a,b=0,sum,n;
    scanf("%d %d",&a,&n);
    if(a<=0 || n <= 0)
        printf("-1");
    else
    {
        for(int i=0;i<n;i++)
        {
            b=10*b+a;
            sum=sum+b;
        }
        printf("%d",sum);
    }
    return 0;
}

输出-1.00?

printf("-1");
输出之后后面没有任何分隔符,没有空格也没有换行,那之后打印的不直接粘一起了吗
printf("%d",sum);这个print没有在else里面,所以即使进了if它也会打印,你的else忘记写括号了吧