数组
定义:它可以存储一个固定大小和相同类型元素和顺序集合
例如下面代码:
type array Name [array Size];
这里叫做一维数组。arraySize必须是一个大于零的整数常量,type可以是任意有效的c数据类型。
例如:要声明一个类型为double的包含10个元素的数组balance
获取数
- 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;
}
运行后如下图:
这里你输入多少字母它就输出多少数字,这里是自动计算的。
第一次发表文章,分享自己的学习经验和见解。还有在学习中的一些想法分享给大家。有什么不足之处还望多指点。互相学习,共同进步。 另外给大家拜个晚年,祝新年行大运!仕途步步高升、万事胜意!麻雀得心应手、财源广进!身体棒、吃饭香、睡觉安,合家幸福,恭喜发财。