洛谷P2550-彩票摇奖
先上代码吧
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;//存储买的彩票数
int aw[7];//存储中奖号码
cin>>n;
for (int i = 0; i < 7; ++i) {
cin>>aw[i];
}//中奖号码
int jiang[7];
::memset(jiang,0,sizeof(jiang));//置0
int myaw[n][7];//我的n组彩票号码
for (int i = 0; i < n; ++i) {
for (int j = 0; j < 7; ++j) {
cin>>myaw[i][j];
}
}
int a[n];//存储这n张中奖号码各有几个中将号码
::memset(a,0,sizeof(a));//置0
for (int j = 0; j < n; ++j) {
for (int i = 0; i < 7; ++i) {
for (int k = 0; k < 7; ++k) {
if(aw[i]==myaw[j][k])
a[j]++;
}
}
}
for (int i = 0; i < n; ++i) {//计算得奖数
switch (a[i]) {
case 7:
jiang[0]++;
break;
case 6:
jiang[1]++;
break;
case 5:
jiang[2]++;
break;
case 4:
jiang[3]++;
break;
case 3:
jiang[4]++;
break;
case 2:
jiang[5]++;
break;
case 1:
jiang[6]++;
break;
}
}
for (int i = 0; i < 7; ++i) {
cout<<jiang[i]<<" ";
}
return 0;
}
三个输入,第一个买的彩票张数,第二个存的中将号码,第三个存的买的彩票号码,因为买的彩票可能多张所以使用的二维数组,然后就遍历每个中将号码看是否在我买的彩票中出现,统计出现的个数,这是一个三层循环,最外层是第几张彩票,第二层是中奖号码,第三层是我的彩票号码,最后用一个灵魂的switch语句。总体来说难度不大