给定一个字符串,如何判断它是否至少包括如下三姐字符里的两组中的字符:(0宇母;(2) 数字;(3)持殊字符:,,,$,%,,8,*。若是输出Y,否则输出n
这个你可以用三个变量记录每一种的个数
#include <stdio.h>
int main() {
char str[100];
int a = 0, b = 0, c = 0;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
// 统计字符个数
for (int i = 0; str[i] != '\0'; i++) {
if ('A'<=str[i] && str[i] <= 'Z')
a++;
else if ('a'<=str[i] && str[i] <= 'z')
a++;
else if ('0'<=str[i] && str[i] <= '9')
b++;
else
c++;
}
if ((a != 0 && b != 0) || (a != 0 && c != 0) || (b != 0 && c != 0))
printf("Y");
else
printf("N");
return 0;
}
声明一个字符数组来存储字符串,例如:char str[100];
使用scanf或gets函数从用户输入中获取字符串,例如:scanf("%s", str);
声明三个布尔型变量来表示三个字符是否出现,例如:bool hasAlpha = false, hasDigit = false, hasSpecial = false;
使用for循环遍历字符串中的每个字符,例如:for (int i = 0; str[i] != '\0'; i++)
在循环中,使用条件语句判断字符的类型,并将对应的布尔变量置为true,例如:
if (isalpha(str[i])) {
hasAlpha = true;
} else if (isdigit(str[i])) {
hasDigit = true;
} else if (str[i] == ',' || str[i] == '$' || str[i] == '%' || str[i] == '&' || str[i] == '*' || str[i] == '@') {
hasSpecial = true;
}
最后,使用条件语句判断三个布尔变量的值,如果至少有两个为true,则输出"Y",否则输出"n",例如:
if (hasAlpha + hasDigit + hasSpecial >= 2) {
printf("Y\n");
} else {
printf("n\n");
}
这样就可以判断一个字符串是否至少包括指定的字符,并输出相应的结果。
计输出所求的素数的和与最大的素数 代码如下所示
/ // 输出所求的素数、素数和、最大的素数。
printf("\n1750 到 1850 之间的素数为\n");
for (int i = 0; i < 100; i++)
{
if (primeNumber[i] != 0)
{
printf("%d ", primeNumber[i]);
}
}
printf("\n\n1750 到 1850 之间的素数和为:%d\n", s);
printf("\n1750 到 1850 之间的最大素数为:%d\n", max);
按F5进行编译,调试结果如下所示。