- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
该程序将以下行作为输入:
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/
我的代码看起来很业余,因为我是一名二年级的软件工程学生。 我创建了一个彩票号码生成器,并注意到奇怪但一致的结果。我的程序尝试匹配之前的欧洲百万彩票抽奖号码。我记录了尝试的次数,还记录了匹配 3、4、5
Scanner input = new Scanner(System.in); Random random = new Random(); System.out.print("Enter a numb
所以我正在模拟彩票。我生成 0 到 40 之间的 6 个数字,并将它们显示在 html id“生成”中。我的问题是,如果我第二次单击“生成”(在我的 html 页面中),之前生成的数字仍然是数组的一部
我正在尝试解决彩票号码问题。有一张 table 卡片,上面有彩票号码: 表格:卡片 +----+----+----+----+----+----+ | ID | b1 | b2 | b3 | b4 |
我是一名优秀的程序员,十分优秀!