数组分析

本文介绍了如何使用C语言编写程序,通过控制台接收用户输入的字符,统计每个字符出现的次数,并按字母顺序输出结果。代码实例展示了如何声明数组、读取输入并计算字符频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组

定义:它可以存储一个固定大小和相同类型元素和顺序集合
例如下面代码:

type array Name [array Size];

这里叫做一维数组。arraySize必须是一个大于零的整数常量,type可以是任意有效的c数据类型。
例如:要声明一个类型为double的包含10个元素的数组balance

获取数

  1. List item

数组的长度和值个数
例如:double balance【5】={1000.0,2.0,3.4,7.0,50.0}
大括号{}之间的值的数目不能大于我们在数组声明时在方括号【】中指定的元素数目。**
求元素个数公式:
sizeof(balance)/sizeof(double)
例如:double balance【5】={1000.0,2.0,3.4,7.0,50.0}在数组中的长度也就是说数组在内存中的长度:sizeof(balance)=5×8=40
解析:
这里的40怎么来的呢?
这个40是以数组指定的长度5×数组里的数值8得出的40.
这么说大家肯定又迷惑了,那这个8又是怎么来的呢?
这里的8是以系统的参数来定的比如你的电脑参数为64位的,那值就是8.
32位的系统参数,那值就是4.
然后以你定的数组的长度乘以数值得到所占的内存。

题目

现在给大家出一个小小的题目;

通过控制台输入N个字符,统计每种字符出现次数,输出字母和出现次数,按照顺序输出。
程序编制出来输入以下字母:
input:
a b c d a u s b c b
程序运行之后输出应该如下:

b:3 a:2 c:3 d:1 u:1 s:1

声明一点

程序运行中不一定是以上的数组或者数值,仅供参考

代码

现在给大家分享我所编的代码

#include<stdio.h>
#define MAX_SIZE 100
#define STAT_MAX_SIZE 127
 
typedef unsigned  int uint32;

int main()
{
	char tmp = 0;
	char char_set[MAX_SIZE] = { 0 };
	uint32 i = 0;
	uint32 stat[STAT_MAX_SIZE] = { 0 };

	printf("please input chars in line:");

	while (scanf_s("%c", &tmp)&& tmp !='\n') {
		if (tmp == ' ') {
			continue;

		}
		char_set[i++] = tmp;
	}

	for (i = 0; i < MAX_SIZE && char_set[i] !=0; i++) {
		printf("%c", char_set[i]);
		stat[char_set[i]]++;
	}
	printf("\nchar_set.size=%u\n",i);

	for (i = 0; i < STAT_MAX_SIZE; i++) {
		if (stat[i] == 0) {
			continue;
		}
		printf("%c:%u\n", i,stat[i]);
	}
	return 0;
}

运行后如下图:
在这里插入图片描述

这里你输入多少字母它就输出多少数字,这里是自动计算的。

第一次发表文章,分享自己的学习经验和见解。还有在学习中的一些想法分享给大家。有什么不足之处还望多指点。互相学习,共同进步。 另外给大家拜个晚年,祝新年行大运!仕途步步高升、万事胜意!麻雀得心应手、财源广进!身体棒、吃饭香、睡觉安,合家幸福,恭喜发财。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值