有个非常奇怪事情,请假评论区大佬(c语言)
查看原帖
有个非常奇怪事情,请假评论区大佬(c语言)
998272
jango楼主2023/8/16 22:43

//第49行那里,注释与否,为什么会影响最终结果,太奇怪了,而且为什么定义的查奖函数,重复调用,结果会不同?以下是代码

#include <stdio.h>
#include <stdlib.h>

int prizecheck(int a[7],int p[7])//a为奖号,p为买的号,返回中了几个号
{
    int ct;
    for(int i=0;i<7;i++)
    {
        for(int j=0;j<7;j++)
        {
            if(a[j]==p[i])
            {
                ct++;
            }
        }
    }
    return ct;
}

int main()
{
    int n,ans[7];//n为彩票数,最终输出结果
    scanf("%d",&n);
    int a[7],p[n][7];//a为奖号,p为买的n张彩票

    for(int i=0;i<7;i++)//结果矩阵初始化
    {
        ans[i]=0;
    }

    for(int j=0;j<7;j++)//输入奖号
    {
        scanf("%d",&a[j]);
    }

    for(int j=0;j<n;j++)//输入买的彩票
    {
        for(int i=0;i<7;i++)
        {
        scanf("%d",&p[j][i]);
        }
    }

        for(int j=0;j<n;j++)//检查每张奖票,给对应奖项位置加一
    {
        int k=prizecheck(a,p[j]);
        if(k!=0)
        {
            printf("%d\n",k);//把这一行注释掉,输出的结果不一样,什么原因??
            ans[7-k]+=1;
        }
    }
        for(int j=0;j<7;j++)//输出结果
    {
        printf("%d ",ans[j]);
    }
    return 0;
}

2023/8/16 22:43
加载中...