C语言改错,输出15至100之间所有能被3整除且至少有一位数字是5的整数

img

img


输出15至100之间所有能被3整除且至少有一位数字是5的整数
将上面程序改错

改两个地方: 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;
} 

img