不是程序没错误,else{ if((n-1) % 7 == 0) printf("\n");}printf("%d\t", n-y);这句是错的,即便你的敬李卖n等于1,但扰码是因为你的printf("%d\t", n-y);放在了条亮逗件控制语句的外面,所以他还是执行,也就是打印出(1-2)的值,自然就打出了-1,把这句话放在else语句的那个括号里面就行了