海大930-2021年题2:有一份包含三行字符的农产品资料,每行最多100个字符。实现如下函数(本题共20分) 1.统计农产品资料中的大写字母,小写字母,数字,空格及其他字符的个数, 要求用二维数组s

题目

本题是2021年中国海洋大学研究生入学考试930程序设计基础编程题第2题。
题目:
有一份包含三行字符的农产品资料,每行最多100个字符。实现如下函数(本题共20分)
1.统计农产品资料中的大写字母,小写字母,数字,空格及其他字符的个数,
要求用二维数组s[][]存放包含三行字符的农产品资料,并将该二维数组s[][]
作为所编写函数的参数,统计结果通过作为函数参数的一维数组c[]返回。请给出
设计思路,并写出函数实现。(15分)
2.请编写主函数,实现功能:由键盘输入包含3行字符的农产品资料,调用第一问
中完成的函数,输出统计出的农产品资料中的大写字母,小写字母,数字,空格及其他字符的个数。(5分)


以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj。QQ:2394799692

一、解题思路

思路:
1,先写主函数,根据题目得知我们需要定义一个二维字符型数组来存放一份包含三行字符的农产品资料,每行最多100个字符。也就是定义char s[3][100]。
2,接下来定义一个一维整型数组,因为我们需要5个整形元素来存放大写字母,小写字母,数字,空格及其他字符的个数,并且这个值在函数运行后在主函数里也能使用。
3,使用for循环+gets函数输入3行信息到s数组中。
4,将s数组和c数组的首元素地址传到find函数,进行大写字母,小写字母,数字,空格及其他字符的个数的寻找。
5,使用双重for循环遍历整个农产品资料,也就是s数组,然后在循环中使用多分支if语句来根据题目要求进行相应的判断,并且加相应的值。
6,经过find函数后,将c数组中存放的数据依次输出即可。

二、代码部分

1.引入库

代码如下(示例):

#include<stdio.h>

2.主函数部分

代码如下(示例):

int i, j;
void find(char s[][100], int c[])
{
	for(i=0;i<3;i++)
		for (j = 0; s[i][j]; j++)
		{
			if (s[i][j] >= 'A' && s[i][j] <= 'Z')//大写字母
				c[0]++;
			else if (s[i][j] >= 'a' && s[i][j] <= 'z')//小写字母
				c[1]++;
			else if (s[i][j] >= '0' && s[i][j] <= '9')//数字
				c[2]++;
			else if (s[i][j] == ' ')//空格
				c[3]++;
			else
				c[4]++;//其他字符
		}
}
void main()
{
	char s[3][100];//一份包含三行字符的农产品资料,每行最多100个字符。
	int c[5] = {0};//统计结果通过作为函数参数的一维数组c[],先设其所有元素为0
	printf("请输入一份包含三行字符的农产品资料,每行最多100个字符:\n");
	for (i = 0; i < 3; i++)
		gets(s[i]);
	find(s, c);
	printf("大写字母,小写字母,     数字,       空格,       其他字符\n");
	for (i = 0; i < 5; i++)
		printf("%d            ", c[i]);
}

三、执行结果

在这里插入图片描述

输入:

请输入一份包含三行字符的农产品资料,每行最多100个字符:
XiGua 1.2
QieZi 3.8
LWJ 0.0

输出:

大写字母,小写字母,     数字,       空格,       其他字符
7            6            6            3            3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立志冲海大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值