gpt4 book ai didi

C程序查询彩票号码: why some tests fail?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:35 25 4
gpt4 key购买 nike

该程序将以下行作为输入:

23 12 33 19 10 8
5
23 19 8 12 60 18
14 60 12 44 54 10
8 3 12 19 33 10
33 15 7 60 12 10
22 12 19 23 33 11

23 12 33 19 10 8(第一行)是开奖结果。n(在此特定情况下为 5)表示下面将跟随多少行。

每行有 6 个数字。编号顺序无关紧要。

规则是:数字范围从 1 到 60(包括 1 和 60)并且它们永远不会在同一行重复。

变量“quadra”存储有多少行的 4 个数字是对的。

变量“quina”存储有多少行正确了 5 个数字。

变量“sena”存储有多少行有 6 个数字是对的。

所以,一个计算机程序正在对我下面的代码运行一些测试,它声称其中大部分都出错了,但我看不出这里有什么问题。有人知道吗?这段代码是错误的,还是测试这段代码的软件有问题?

#include <stdio.h>

int main(){
int mega[6];
int v[50500][6];
int n,swap;
int i,j,k; //counters
int quadra,quina,sena;
quadra = 0;
quina = 0;
sena = 0;
for(i=0;i<6;++i) scanf("%i",&mega[i]); //first line, lottery results
scanf("%i",&n);
for(i=0;i<n;++i){
for(j=0;j<6;++j){
scanf("%i",&v[i][j]);
}
}
for(i=0;i<n;++i){
for(j=0;j<6;++j){
for(k=0;k<6;++k){
if(v[i][j] == mega[k]){
v[i][j] = 61;
}
}
}
}

//reverse bubble sort
for(i=0;i<n;++i){
for(j=0;j<6;++j){
for(k=j+1;k<6;++k){
if(v[i][j] < v[i][k]){
swap = v[i][k];
v[i][k] = v[i][j];
v[i][j] = swap;
}
}
}
}

for(i=0;i<n;++i){
for(j=0;v[i][j] == 61 && j<6;++j);
if(j == 4) ++quadra;
else if(j == 5) ++quina;
else if(j == 6) ++sena;
}
return 0;
}

最佳答案

您的代码是真实的,我理解并尝试了它的流程。看起来不错,但如果您不需要对每一行进行排序(并在此循环中使用 j 作为计数器 for(j=0;v[i][j] == 61 && j<6;++j); ),则可以使用更简单的 if将真实的彩票结果与输入的结果进行比较的语句。我的意思是你的算法有点复杂。尝试一个简单的,看看它是如何工作的。

关于C程序查询彩票号码: why some tests fail?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43640085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com