C++这个求20的因子的程序为何无法输出

#include
using namespace std;
int main()
{
int a,s,n,b,c,x1,x2,x3,x4,x5,x6,x7,x8;
a=20;
for(b=1;b {s=0;if(a%b==0)s+=1;
switch(s)
{case 1:
x1=b; break;
case 2:
x2=b ;break;
case 3:
x3=b ;break;
case 4:
x4=b ;break;
case 5:
x5=b ;break;
case 6:
x6=b ;break;
case 7:
x7=b ;break;
case 8:
x8=b ;break;}
}if (s>1)cout< if (s>2)cout< if (s>3)cout< if (s>4)cout< if (s>5)cout< if (s>6)cout< if (s>7)cout<<x8;
cout<<endl;
return 0;
}

int main()
{
int i,j; /*定义变量i,j为基本整型*/
printf("please input:\n");
scanf("%d",&i); /*用scanf函数获得i的值*/
for(j=1;j<=i;j++) /*for语句中j的取值范围从1到i*/
if(i%j==0) /*如果i对j取余的结果为0说明j是i的因子*/
printf("%d,",j); /*将每次求出的因子输出*/

return 0;

}

看看这个。。。

这么做也可以的
#include
using namespace std;
int main(){
int n=20;
for(int i=1;i<=20;i++)
{
if(n%i==0)
printf("%d ",i);
}
}
这个可运行,亲测过