学习小结

来源:互联网 发布:windows 无法完成安装 编辑:程序博客网 时间:2024/05/16 02:25
#include <stdio.h>


int main()
{
    int i;
    int j;
    int k;
    int m;
    int n;
    int cont = 0;
    int l = 0;
    int a [ 6 ];
    for(i = 255; i >0 ; i--)
    {
        m = i*i;
        for( cont = 0; m != 0; cont++)
           m = m/10;
        m = i*i;
        for( j = 1,k = 10000; j<6 ; j++)
        {

            a [ j ] = m/k;

            m = m%k;
            k = k/10;
        }
        for( j = 6-cont,n = 1,l =0; j < 6; j++ )
        {
            l += a [ j ]*n;
            n *= 10;
        }
        if(l == i*i)
            printf("%d\n",i);
    }
}

在调试过程中,结果只显示0,1,376,625;在gdb调试中发现最后一个for循环固定以a[0]开始,不符合要求,经过修改for(j =cont,n = 1,l = 0;j<6; j++);结果只输出376,625;又通过gdb调试发现cont值始终为3-5;最后将j= cont 改为 j = 6-cont,得出正确结果。

1 0
原创粉丝点击