将表与给定字符串进行比较

时间:2013-12-14 23:31:05

标签: c

我想比较一下我的表并将其与给定的字符串数进行比较。 我准备好了表格代码,我想扫描一个4位数的字符串不是问题。 该表是初始化[1296] [4],我希望它与给定的字符串[4]进行比较。 我是编程新手,我遇到了一些困难。我实际上正在建立一个公牛和奶牛游戏,我需要将我的表行的每个数字与每列的给定字符串进行比较。 我希望我对我的问题很清楚,因为它可能会让人感到困惑,或者我只是不解释它。我试过这样做,但我似乎无法使它发挥作用。

这是我的桌子。如果有人可以提供帮助,我会非常感激。感谢。

void initialize(int poss[1296][4])
{
    int i=0;
    int j, k=0;
    int m;

    while (i<=5)
    {
        for (j=0; j<216 ; j++)
        {
            poss[k][0]=i;
            k++;
        }
        i++;
    }

    k=0;
    i=0;
    j=0;

    while (k<1296)
    {
        for (m=0; m<6; m++)
        {
            for (j=0; j<6; j++)
            {
                for (i=0; i<36 ; i++)
                {
                    poss[k][1]=j;
                    k++;
                }
            }
        }
    }

    k=0;
    i=0;
    j=0;
    m=0;

    while (k<1296)
    {
        for (j=0; j<6; j++)
        {
            for (i=0; i<6; i++)
            {
                poss[k][2]=j;
                k++;
            }
        }

    }

    k=0;
    i=0;
    j=0;
    m=0;

    while (k<1296)
    {
        for (i=0; i<6; i++)
        {
            poss[k][3]=i;
            k++;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

确保在控制台上减少一次无法显示的行数。 另一个人认为你必须阅读公牛和奶牛的定义(http://en.wikipedia.org/wiki/Bulls_and_cows)。你的暗示是不对的。

链接到您的代码http://ideone.com/uTZf7R

修改

#include <stdio.h>
#include <string.h>

void initialize(int poss[1296][4]);

int main()
{
    int table[1296][4];
    char str[5];
    char tmp[5];

    int i, j, k;
    int bull = 0;
    int cow = 0;
    initialize(table);
    printf("Enter 4 digits: ");
    gets(str);
    for (i=0; i<100; i++){
        strcpy(tmp, str);
        for (j=0; j<4; j++){
            for (k=0; k<4; k++){
                if (table[i][j]==tmp[k]-'0' && j==k){
                    tmp[k] = -1;
                    bull++;
                    break;
                }
                else if (table[i][j]==tmp[k]-'0' && j!=k){
                    tmp[k] = -1;
                    cow++;
                    break;
                }
            }
        }
        printf ("Number: %d%d%d%d, Input: %s\n",table[i][0], table[i][1], table[i][2], table[i][3], str);
        printf ("%d bulls and %d cows\n\n", bull, cow);
        bull = 0;
        cow = 0;
    }
}

void initialize(int poss[1296][4])
{
    int i=0;
    int j, k=0;
    int m;

    while (i<=5)
    {
        for (j=0; j<216 ; j++)
        {
            poss[k][0]=i;
            k++;
        }
        i++;
    }

    k=0;
    i=0;
    j=0;

    while (k<1296)
    {
        for (m=0; m<6; m++)
        {
            for (j=0; j<6; j++)
            {
                for (i=0; i<36 ; i++)
                {
                    poss[k][1]=j;
                    k++;
                }
            }
        }
    }

    k=0;
    i=0;
    j=0;
    m=0;

    while (k<1296)
    {
        for (j=0; j<6; j++)
        {
            for (i=0; i<6; i++)
            {
                poss[k][2]=j;
                k++;
            }
        }

    }

    k=0;
    i=0;
    j=0;
    m=0;

    while (k<1296)
    {
        for (i=0; i<6; i++)
        {
            poss[k][3]=i;
            k++;
        }
    }
}

按照他们为您服务的方式更改变量名称。

请注意string[j] - '0'是将字符串[j]作为整数。