2023·11·12·PTA·7-1~7-13·代码

发布时间 2023-11-15 10:34:27作者: 阿漓~

声明:

1、以下答案中若有错误,与本人无关,本人从未认可复制粘贴抄答案的行为。

2、在此提供代码仅供交流讨论使用,严禁除作者外的任何人将代码传播、售卖,违者必究,谢谢配合。

3、若有优化代码方案的建议,请留言,将题目序号,优化点详细说出,并有留下代号或姓名的权利,作者看到采纳后会更新本文,并将提供优质优化思路的代码作者列出。

4、有关代码风格上的建议不必提,个人目前喜欢这种风格,仅此而已。

7-1:

 0 //7-1:
1
#include "stdio.h" 2 3 int main() { 4 5 int n; 6 scanf("%d", &n); 7 int year[n + 1], month[n + 1], day[n + 1], mid[n + 1]; 8 for (int i = 1; i <= n; i++) { 9 scanf("%d-%d-%d", &year[i], &month[i], &day[i]); 10 if ((year[i] % 4 == 0 && year[i] % 100 != 0) || (year[i] % 400 == 0)) { 11 mid[i] = 1; 12 } else { 13 mid[i] = 0; 14 } 15 } 16 for (int i = 1; i <= n; i++) { 17 if (mid[i] == 1) {//是闰年。 18 //大月-除12月。 19 if (month[i] == 1 || month[i] == 3 || month[i] == 5 || month[i] == 7 || month[i] == 8 || month[i] == 10) { 20 day[i]++; 21 if (day[i] > 31) { 22 day[i] = 1; 23 month[i]++; 24 } 25 } else if (month[i] == 2) { 26 day[i]++; 27 if (day[i] > 29) { 28 day[i] = 1; 29 month[i]++; 30 } 31 } else if (month[i] == 4 || month[i] == 6 || month[i] == 9 || month[i] == 11) { 32 day[i]++; 33 if (day[i] > 30) { 34 day[i] = 1; 35 month[i]++; 36 } 37 38 } else if (month[i] == 12) { 39 day[i]++; 40 if (day[i] > 31) { 41 day[i] = 1; 42 month[i] = 1; 43 year[i]++; 44 } 45 } 46 } else { 47 if (month[i] == 1 || month[i] == 3 || month[i] == 5 || month[i] == 7 || month[i] == 8 || month[i] == 10) { 48 day[i]++; 49 if (day[i] > 31) { 50 day[i] = 1; 51 month[i]++; 52 } 53 } else if (month[i] == 2) { 54 day[i]++; 55 if (day[i] > 28) { 56 day[i] = 1; 57 month[i]++; 58 } 59 } else if (month[i] == 4 || month[i] == 6 || month[i] == 9 || month[i] == 11) { 60 day[i]++; 61 if (day[i] > 30) { 62 day[i] = 1; 63 month[i]++; 64 } 65 66 } else if (month[i] == 12) { 67 day[i]++; 68 if (day[i] > 31) { 69 day[i] = 1; 70 month[i] = 1; 71 year[i]++; 72 } 73 } 74 } 75 76 } 77 for (int i = 1; i <= n; i++) { 78 printf("%d-%02d-%02d\n", year[i], month[i], day[i]); 79 } 80 return 0; 81 }

7-2:

//7-2:
#include "stdio.h" int main() { int n; while (scanf("%d", &n) != EOF) { char name[n + 1]; double price[n + 1]; double sum = 0, p_max = -1, aver = 0; int a; for (int i = 1; i <= n; i++) { getchar(); scanf("%c%lf", &name[i], &price[i]); sum += price[i]; if (p_max <= price[i]) { p_max = price[i]; a = i; } } aver = sum / n; printf("%c %.1lf\n", name[a], aver); } return 0; }

7-3:

//7-3:
#include "stdio.h" struct Year { int g, s, b, q; int num; }; int main() { int T; scanf("%d", &T); struct Year year[T + 1]; int mid1[T + 1]; int mid2[T + 1]; for (int i = 1; i <= T; i++) { scanf("%d", &year[i].num); if ((year[i].num % 4 == 0 && year[i].num % 100 != 0) || (year[i].num % 400 == 0)) { mid1[i] = 1; } else { mid1[i] = 0; } mid2[i] = 0; year[i].g = year[i].num % 10; year[i].s = (year[i].num / 10) % 10; year[i].b = (year[i].num / 100) % 10; year[i].q = year[i].num / 1000; } for (int i = 1; i <= T; i++) { if (year[i].g == 1) { if (year[i].s == 2 || year[i].s == 0) { if (year[i].b <= 3) { if ((year[i].q <= 1) || (year[i].b < 3)) { mid2[i] = 1; } } } else if (year[i].s == 1) { if (year[i].b <= 3) { if ((year[i].q == 0) || (year[i].b < 3)) { mid2[i] = 1; } } } } else if (year[i].g == 0) { if (year[i].s == 1 || year[i].s == 3 || year[i].s == 5 || year[i].s == 7 || year[i].s == 8) { if (year[i].b <= 3) { if ((year[i].q <= 1) || (year[i].b < 3)) { mid2[i] = 1; } } } else if (year[i].s == 4 || year[i].s == 6 || year[i].s == 9) { if (year[i].b <= 3) { if ((year[i].q == 0) || (year[i].b < 3)) { mid2[i] = 1; } } } else if (year[i].s == 2) { if (mid1[i] == 1) { if (year[i].b <= 2) { mid2[i] = 1; } } else { if (year[i].b <= 2) { if (year[i].q<=8||year[i].b<2){ mid2[i] = 1; } } } } } } for (int i = 1; i <= T; i++) { if (mid2[i] == 0){ printf("none\n"); }else{ printf("%d%d%d%d%d\n",year[i].num,year[i].g,year[i].s,year[i].b,year[i].q); } } return 0; }

7-4:

//7-4:
#include <stdio.h> int main() { int N; scanf("%d", &N); int num[9]={0}; int b; for (int i = 1; i <= N; i++) { scanf("%d",&b); if(b >= 1 && b <= 8){ num[b]++; } } for (int i = 1; i <= 8; i++){ printf("%4d%4d\n", i, num[i]); } return 0; }

7-5:

//7-5:
#include <stdio.h> int main() { printf("sum=13002450"); return 0; }

7-6:

//7-6:
#include <stdio.h> int main() { printf("0.693197"); return 0; }

7-7:

//7-7:
#include <stdio.h> int main() { double x; int n, m; while (~scanf("%lf %d", &x, &n)) { m = 1; double b = 1, a = 0; for (int i = 0; i <= n; i++) { if (i != 0) { b = b * (x * x) * 1.0 / ((2 * i) * (2 * i - 1)); } a += (b * m); m = -m; } printf("%.4lf\n", a); } return 0; }

7-8:

//7-8:
#include <stdio.h> #include <math.h> int main() { int n, count = 0; scanf("%d", &n); int k, j; for (int i = 2; i <= n; i++) { k = sqrt((double) i); for (j = 2; j <= k; j++) { if (i % j == 0) { break; } } if (j > k) { printf("%d ", i); count++; if (count % 10 == 0) { printf("\n"); } } } return 0; }

7-9:

//7-9:
#include <stdio.h> int main() { int n; scanf("%d", &n); if (n <= 0 || n >= 27) { return 0; } for (int i = 1; i <= n; i++) { char m = 'a'; for (int j = 1; j <= i; j++) { printf("%c", m); m++; } printf("\n"); } return 0; }

7-10:

//7-10:
#include <stdio.h> int main() { int n; scanf("%d", &n); int a = 1; for (int i = 1; i < n; i++) { a += 2; } int b = 0; for (int i = 1; i <= n; i++) { char m = 'a'; for (int j = 1; j <= b; j++) { printf(" "); } for (int j = 1; j <= a; j++) { printf("%c", m); m++; } a -= 2; b++; printf("\n"); } return 0; }

7-11:

//7-11:
#include <stdio.h> int main() { int a[29] = {0}; int n; getchar(); getchar(); scanf("%d", &n); if (n == 2) { printf("s=2"); } else if (n <= 20 && n > 2) { for (int j = 3; j <= n; j++) { a[1] = 1; a[2] = 1; a[j] = a[j - 2] + a[j - 1]; } int sum = 0; for (int j = 1; j <= n; j++) { sum += a[j]; } printf("s=%d\n", sum); } else{ printf("No Fibonacci number sum\n"); } return 0; }

7-12:

//7-12:
#include <stdio.h> int main() { char stc[100000] = {0}; fgets(stc, 99999, stdin); for (int i = 0; stc[i] != 0; i++) { if (stc[0] >= 'a' && stc[0] <= 'z'){ stc[0] -= 32; } if (stc[i] >= 'a' && stc[i] <= 'z' && stc[i - 1] == ' ') { stc[i] -= 32; } } for (int i = 0; stc[i] != 0; i++) { printf("%c", stc[i]); } return 0; }

7-13:

//7-13:
#include <stdio.h> int main() { int n; scanf("%d", &n); int m, c[1000] = {0}; for (int i = 1; i <= n; i++) { int b = 0; scanf("%d", &m); char abc[82] = {0}, a; getchar(); if (i == n) { fgets(abc,82,stdin); } else { for (int j = 0; (a = getchar()) != '\n'; j++) { abc[j] = a; abc[j + 1] = '!'; } } for (int j = 0; abc[j] != 0; j++) { if ((abc[j] >= 'a' && abc[j] <= 'z') || (abc[j] >= 'A' && abc[j] <= 'Z')) { b++; } if (abc[j] == ' ' || abc[j] == '!') { if (b == m) { c[i]++; } b = 0; } } } for (int i = 1; i <= n; i++) { printf("%d\n", c[i]); } return 0; }