CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
努力是为了让自己不平庸:
四道题都是相关字符串的,思路很好想,但是需要熟练使用,不能有小错误。
活动时间:9月8日-21日(竞赛时间截止9.18)
竞赛考试时间:9月18日 8:30-11:00(作答时间2小时)
获奖名单公布:9月23日,在本页面公布获奖名单链接
获奖用户信息收集:9月27日
奖品发放:9月30日后7个工作日内
这是我的第一次竞赛,在今天早早的就起来了,提前洗漱完毕,等待竞赛开始就直接进入
X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。 小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)
先定义一个变量用于用于控制输入多少字符串,一个for循环将输入的字符串存入定义好的数组里,再用枚举法判断每一个字符串是否满足为“ak”或“m4a1”或“skr”,满足则计数加1,最后输出计数
- #include "stdio.h"
- #include "string.h"
-
- int main() {
- int n, count;
- scanf("%d", &n);
- char str[n][10];
-
- for (int i = 0; i < n; i++) {
- scanf("%s", &str[i]);
- }
-
- for (int j = 0; j < n; j++) {
- if (strcmp(str[j], "ak") == 0 || strcmp(str[j], "m4a1") == 0 || strcmp(str[j], "skr") == 0) {
- count++;
- }
- }
-
- printf("%d", count);
- return 0;
- }

鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理, 但是这次鬼艺接手了, 你能帮鬼艺写一个 程序统计每年消耗数量最多的鬼画符吗?
本题考查的是找出数组中出现最多的元素并输出,可以用两个for循环计算每个元素在数组的个数然后放进一个数组里,对它们进行比大小,从而找到出现最多的索引。
- #include "stdio.h"
- #include "string.h"
-
- int main() {
- int n;
- scanf("%d", &n);
- char str[n][10];
- int count[n];
-
- for (int i = 0; i < n; i++) {
- scanf("%s", &str[i]);
- }
-
- for (int j = 0; j < n; j++) {
- for (int k = 0; k < n; k++) {
- if (strcmp(str[k], str[j]) == 0) {
- count[j]++;
- }
- }
- }
-
- int max = count[0];
- int m;
-
- for (int p = 0; p < n; p++) {
- if (max < count[p]) {
- max = count[p];
- m = p;
- }
- }
-
- printf("\n%s", str[m]);
- return 0;
- }

要多多练习,多多刷题,熟练的使用算法。
可以先看输入,输出实例可以快速理解题意,缩短做题时间。