2006年9月全國(guó)等級(jí)考試三級(jí)c語(yǔ)言上機(jī)題庫(kù)(二十四)

字號(hào):

☆題目24(無(wú)憂id 16 完全平方數(shù)問(wèn)題)
    下列程序prog1.c的功能是:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中;它既是完全平方數(shù),又是兩位數(shù)字相同,例如144、676等。
    請(qǐng)編制函數(shù)實(shí)現(xiàn)此功能,滿足該條件的整數(shù)的個(gè)數(shù)通過(guò)所編制的函數(shù)返回。
    最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件out.dat中。
    請(qǐng)勿改動(dòng)主函數(shù)main()和寫(xiě)函數(shù)writeDat()的內(nèi)容。
    #include
    int jsValue(int bb[])
    {int i,j,k=0;
    int hun,ten,data;
    for(i=100;i<=999;i++)
    {j=10;
    while(j*j<=i)
    {if(i==j*j)
    { hun=i/100; data=i%100/10; ten=i%10;
    if(hun==ten||hun==data||ten==data) bb[k++]=i;
    }
    j++;
    }
    }
    return k;
    }
    main()
    {
    int b[20],num;
    num=jsValue(b);
    writeDat(num,b);
    }
    writeDat(int num,int b[])
    {
    FILE *out;
    int i;
    out=fopen("out.dat","w");
    printf("%d\n",num);
    fprintf(out,"%d\n",num);
    for(i=0;i    fclose(out);
    }
    另一解法:
    int jsValue(int bb[])
    {int i,j,cnt=0,bw,sw,gw;
    for(i=100;i<=999;i++)
    { bw=i/100; sw=i%100/10; gw=i%10;
    for(j=10;j*j<=i;j++)
    if(i==j*j&&(bw==sw||sw==gw||gw==bw)) bb[cnt++]=i;
    }
    return cnt;
    }