4 条题解
-
2
#include <iostream> using namespace std; const int NUMBERS_PER_TICKET = 7; const int NUM_PRIZES = 7; int main() { int n; cin >> n; int winningNumbers[NUMBERS_PER_TICKET]; // 读取中奖号码 for (int i = 0; i < NUMBERS_PER_TICKET; ++i) { cin >> winningNumbers[i]; } int prizeCounts[NUM_PRIZES] = {0}; // 初始化各奖项中奖张数为 0 // 处理每张彩票 for (int i = 0; i < n; ++i) { int ticketNumbers[NUMBERS_PER_TICKET]; // 读取当前彩票的号码 for (int j = 0; j < NUMBERS_PER_TICKET; ++j) { cin >> ticketNumbers[j]; } int matchCount = 0; // 记录当前彩票与中奖号码相同的数量 // 统计相同号码的数量 for (int j = 0; j < NUMBERS_PER_TICKET; ++j) { for (int k = 0; k < NUMBERS_PER_TICKET; ++k) { if (ticketNumbers[j] == winningNumbers[k]) { ++matchCount; break; } } } // 根据相同号码的数量确定中奖等级并更新对应奖项的中奖张数 if (matchCount > 0) { prizeCounts[NUM_PRIZES - matchCount]++; } } // 输出各奖项的中奖张数 for (int i = 0; i < NUM_PRIZES; ++i) { cout << prizeCounts[i]<<" "; } cout << endl; return 0; } 这个题解是我的思路加上AI给的修改,下面两位学长的方法很好,是对我们输的号码,一个一个进行判断,但我的思路是把所有的号码全部输入完,然后进行两层for循环找到我们的数,然后又通过一个数组来储存答案,发现了中奖个数与数组下标的关系,然后进行储存,最后进行输出。 -
1
学长的方法
#include <stdio.h>
int main () {
int n;
scanf("%d", &n);
int a[7];
int b;
for (int i = 0; i < 7; i++) {
scanf("%d", &a[i]);
}
int t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0;
for (int k = 0; k < n; k++) {
int t0 = 0;
for (int p = 0; p < 7; p++) {
scanf("%d", &b);
for (int q = 0; q < 7; q++) {
if (b == a[q]) {
t0++;
break;
}
}
}
if (t0 == 7) {
t1++;
} else if (t0 == 6) {
t2++;
} else if (t0 == 5) {
t3++;
} else if (t0 == 4) {
t4++;
} else if (t0 == 3) {
t5++;
} else if (t0 == 2) {
t6++;
} else if (t0 == 1) {
t7++;
}
}
printf("%d %d %d %d %d %d %d\n", t1, t2, t3, t4, t5, t6, t7);
return 0;
}
-
1
#include <stdio.h> int main() { int times,time; scanf("%d",×); int a[9],b,i,j,t,r[9]={0}; for(i=1;i<=7;i++)scanf("%d",&a[i]); for(time=1;time<=times;time++) { t=0; for(i=1;i<=7;i++) { scanf("%d",&b); for(j=1;j<=7;j++) if(b==a[j]){t++;break;} } r[t]++; } for(i=7;i>=1;i--)printf("%d ",r[i]); return 0; }// -
0
#include<stdio.h> int main() { int n; scanf("%d",&n); int caipiao[7]; for(int i=0;i<7;i++) { scanf("%d",&caipiao[i]); } int a[n][7]; for(int i=0;i<n;i++) { for(int j=0;j<7;j++) { scanf("%d",&a[i][j]); } } int b[7]={0}; for(int i=0;i<n;i++) { int count=0; for(int j=0;j<7;j++) { for(int k=0;k<7;k++) { if(a[i][j]==caipiao[k]) { count++; break; } } } switch(count) { case 7: b[6]++; break; case 6: b[5]++; break; case 5: b[4]++; break; case 4: b[3]++; break; case 3: b[2]++; break; case 2: b[1]++; break; case 1: b[0]++; break; } } for(int i=6;i>=0;i--) { printf("%d ",b[i]); } return 0; }
- 1
信息
- ID
- 100
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 933
- 已通过
- 116
- 上传者