#include "stdio.h"
main()
{ int num_list[]={6,7,8,9},k,j,b,u=0,m=4,w;
w=m-1;
while(u<=w)
{
j=num_list[u];
k=2;
b=1;
while(k<=j/2&&b)
{++k;b=j%k;}
if(b)
{ printf("%d\n",num_list[u]); u++;}
else
{
num_list[u]=num_list[w];
num_list[w]=j; w--;
}
}
}
请问这个程序是如何输出的?
小while里的怎么看不懂,这是怎么运行的,你能耐心的教我吗?
{ k=2.4.b=1
3.0.} 里面小while里程序
list[0]=8
list[2]=9.w=1
可是软件运行出来的答案和标准答案是相同的,结果为7,我是不太理解
追答结果应该会输出 8 和7 把,之前的说法错误。
第一步:u=0,w=3 得到b=6%3=0,无法进入“if(b)” 所以num_list[]={9 ,7,8,6};
第二步:u=0,w=2 得到b=9%3=0,一样无法进入“if(b)" 所以num_list[]={8,7,9,6};
第三步:u=0,w=1 得到b=8%3=2,进入”if(b)" 所以输出num_list[u]=num_list[0]=8; u=1;num_list[]={8,7,9,6};
第四步:u=1,w=1 得到b=8%3=2,进入”if(b)" 所以输出num_list[u]=num_list[1]=7;u=2;num_list[]={8,7,9,6};
第五步:while(2<=1) 不成立。
结果应该是7,