+ -
当前位置:首页 → 问答吧 → 求此题程序?

求此题程序?

时间:2011-12-14

来源:互联网

已知数据文件IN.DAT中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到OUT.DAT文件。例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+1<>2+9,则该数不满足条件计算平均值pjz2. 


真心菜鸟一个.想看完整的程序,慢慢分析.
还有最好能帮我指出其中的难点?
感谢了~

作者: ydldh   发布时间: 2011-12-14

还是自己先写写吧!

作者: yuzhenhua001   发布时间: 2011-12-14

C/C++ code
#include <stdio.h>

#define INPUT_FILE    "IN.DAT"
#define OUTPUT_FILE    "OUT.DAT"
#define NUM_OF_DATA    300    

long g_Data[NUM_OF_DATA] = {0};
long g_PJZ1 = 0;
long g_PJZ2 = 0;
int g_Cnt = 0;

bool jsValue(long l)
{
    int i1, i2, i3, i4;
    i1 = l%10;
    l /= 10;
    i2 = l%10;
    l /=10;
    i3 = l%10;
    i4 = l/10;
    if ((i1+i2) == (i3+i4))
        return true;
    return false;
}

void WriteData()
{
    FILE* fp = fopen(OUTPUT_FILE, "wb");
    fprintf(fp, "%l %l", g_PJZ1, g_PJZ2);
    fclose(fp);
}

void ReadData()
{
    FILE* fp = fopen(INPUT_FILE, "rb");
    for (int i = 0; i < NUM_OF_DATA; i++)
    {
        fscanf(fp, "%d", &g_Data[i]);
    }
    fclose(fp);
}

int main()
{
    ReadData();
    for (int i = 0; i < NUM_OF_DATA; i++)
    {
        if (jsValue(g_Data[i]))
        {
            g_PJZ1 += g_Data[i];
            g_Cnt ++;
        }
        else
            g_PJZ2 += g_Data[i];
    }
    g_PJZ1 /= g_Cnt;
    g_PJZ2 /= (NUM_OF_DATA-g_Cnt);
    WriteData();
    return 0;
}

作者: Jiao319   发布时间: 2011-12-14

还真不简单,菜鸟观看~

作者: lockie1988   发布时间: 2011-12-14