改两个地方: n=0,即让数组a的下标变量初始化为0 ,然后 while(m<0) 改为while(m>0),即当当前数还有值时才提取数位 .
修改如下:
#include <stdio.h>
int main(void){
int i,j,n=0,m,k,a[100],b[5]; // 存放结果的数组a的下标变量n初始化为0
for(i=15;i<=100;i++)
if(i%3==0){
m=i;
j=0;
k=0;
do{
b[j]=m%10;
m/=10;
if(b[j]==5)
k++;
j++;
}while(m>0); // do-while循环条件改为m>0 ,即当当前数有值时才提取数位,否则退出循环
if(k>0)
a[n++]=i;
}
for(i=0;i<n;i++)
printf("%4d",a[i]);
return 0;
}
在控制台打印100-200之间的所有素数