-fpermissive是会将某些错误降为警告(主要是解决兼容问题)你的程序至少有二个问题的1。 for (int c=0;c<b;c++)。。。c变量的作用域为for中,那么你后面的if (c-b==1),这个c变量是不存在的,为什么不把它定义在for外面 ?2。同样是 for (int c=0;c<b;c++) if (b/c!=0) 循环当c=0时,b/c会出除0错的(基本的数学规则 )--------------------------------------------------------没太看明白你的算法,试试我写的参考