例题:
小溪收到了一个粉丝送来的手环,手环是由三种颜色的晶石串成。小溪认为这很“cool”,如果手环上的任意两个相邻的晶石颜色都不同就更“cool”了,如果手环上任意三个相邻的晶石颜色都各不相同,那就是最“cool”的了。
三种颜色分别用数字1,2,3表示,一串仅包含字符1,2,3的字符串s表示一个手环。请根据s判断小溪对该手环的评价。
例如:
123 1212 11111 12123 1231
对应了
coolest cooler cool cooler cool
(注意:手环是环形的)
实现代码:
#define _CRT_SECURE_NO_WARNINGS 1
#pragma waring(disable:6031)
#include<stdio.h>
#include<string.h>
void num() {
char num[] = "";
printf("Please input nums(123) as composition of the bracelet:");
scanf("%s", num);
printf("The composition of the bracelet:%s\n",num);
//判断手环的种类
int count = 0;
for (int i = 0; i < strlen(num); i++) {
if (num[i] == num[i + 1] | num[0] == num[strlen(num) -1]) {
count = 1;
break;
}
}
if (count != 1) {
for (int i = 0; i < strlen(num); i++) {
if (num[i] == num[i + 2] | num[0] == num[strlen(num) -2]) {
count = 2;
break;
}
}
}
if (count != 1 && count != 2) {
count = 3;
}
//输出结果
if (count == 1) {
printf("cool");
}
else if (count == 2) {
printf("cooler");
}
else {
printf("coolest");
}
}
int main(){
num();
return 0;
}
此处使用的是:vs2022编译器(不同编译器,可能会出现报错情况无伤大雅)
需要注意的知识点:空字符数组的定义、数组的下标访问(C语言无负数访问)、C语言字符串长度的判断......