【PTA 6-10】输入多个单词,统计以指定字母开头的单词个数

本文介绍了一个C语言中用于统计特定字符(包括大小写)在字符串中出现次数的函数实现。该函数通过遍历字符串并根据指定条件计数,能够处理大小写字母的匹配。

题样:

 

 

int getWordNum(char ar1[], char ch) {
	char* p=ar1;
	int flag=0,count=0;
	while(*p!='\0')
	{
		if(*p!=' '&&flag==0)
		{
			flag=1;
			if(*p==ch)count++;
			if(ch>='a')
			{
				if(*p==ch-32)count++;
			}
			else
			{
				if(*p==ch+32)count++;
			}
		}
		if(*p==' '&&flag==1)flag=0;
        p++;
	}
	return count;
}
//下次用while记得先写p++,这里应先判断单词再判断首字母(╯‵□′)╯︵┻━┻

### PTA 6-4 顺序表 统计指定元素值个数 解决方案 在顺序表中统计指定元素值的个数,可以通过遍历顺序表中的所有元素,并逐一比较每个元素是否与目标值相等来实现。以下是解决方案的具体代码示例和解释。 #### 代码实现 ```c int CountElement(SqList L, ElemType e) { int count = 0; // 定义计数器变量 for (int i = 0; i < L.length; i++) { // 遍历顺序表的所有元素 if (L.data[i] == e) { // 如果当前元素等于目标值 count++; // 计数器加1 } } return count; // 返回计数值 } ``` #### 代码解释 上述代码定义了一个函数 `CountElement`,用于统计顺序表 `L` 中目标值 `e` 的出现次数[^4]。 - 变量 `count` 被初始化为 0,用于记录目标值的出现次数。 - 使用 `for` 循环遍历顺序表的所有元素(从索引 0 到 `L.length - 1`)。 - 在每次循环中,检查当前元素是否等于目标值 `e`。如果相等,则将 `count` 加 1。 - 最后返回 `count`,即目标值在顺序表中的出现次数。 #### 测试用例 以下是一个完整的测试程序示例: ```c #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef struct { ElemType data[MAXSIZE]; int length; } SqList; int CountElement(SqList L, ElemType e) { int count = 0; for (int i = 0; i < L.length; i++) { if (L.data[i] == e) { count++; } } return count; } int main() { SqList L; L.length = 5; L.data[0] = 3; L.data[1] = 5; L.data[2] = 3; L.data[3] = 7; L.data[4] = 3; ElemType target = 3; int result = CountElement(L, target); printf("The number of occurrences of %d is %d.\n", target, result); return 0; } ``` #### 输出结果 对于上述测试用例,输出如下: ``` The number of occurrences of 3 is 3. ``` ### 注意事项 - 确保顺序表的长度 `L.length` 不超过其最大容量 `MAXSIZE`。 - 如果顺序表为空(`L.length == 0`),则直接返回 0,表示目标值未出现。 - 此算法的时间复杂度为 \(O(n)\),其中 \(n\) 是顺序表的长度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值