include

adminweb

C语言如何利用数组进行统计

在C语言中,数组是一种非常重要的数据结构,它能够存储一系列相同类型的元素,利用数组进行统计是一种常见的编程任务,可以用于统计各种数据,如数字、字符等,下面我们将介绍如何利用数组进行统计。

统计数字

我们可以使用数组来统计一组数字的频率,我们可以统计一个整数数组中每个数字出现的次数,我们需要定义一个足够大的数组来存储每个数字的频率,然后遍历原始数组,将每个数字的频率加一,我们可以输出每个数字及其频率。

以下是一个简单的C语言程序示例,用于统计一组数字的频率:

#define MAX_NUM 100 // 定义最大数字为100
int main() {
    int nums[] = {1, 2, 3, 3, 4, 4, 4}; // 待统计的数字数组
    int freq[MAX_NUM + 1] = {0}; // 初始化频率数组,用于统计每个数字出现的次数
    int n = sizeof(nums) / sizeof(nums[0]); // 计算数字数组的长度
    // 遍历数字数组,统计每个数字的频率
    for (int i = 0; i < n; i++) {
        freq[nums[i]]++; // 将每个数字的频率加一
    }
    // 输出每个数字及其频率
    for (int i = 0; i <= MAX_NUM; i++) {
        if (freq[i] > 0) { // 如果该数字的频率大于零,则输出该数字及其频率
            printf("%d: %d\n", i, freq[i]);
        }
    }
    return 0;
}

统计字符

类似地,我们也可以使用数组来统计一组字符的频率,我们可以统计一个字符串中每个字符出现的次数,这可以通过遍历字符串并使用一个字符数组来记录每个字符的频率来实现。

以下是一个简单的C语言程序示例,用于统计一个字符串中每个字符的频率:


#include <ctype.h> // 用于isalpha()等函数
#define MAX_CHAR 128 // ASCII码表中的字符数量(包括大小写字母)等可定义成这个值左右即可。
int main() {
    char str[] = "Hello, World!"; // 待统计的字符串
    int freq[MAX_CHAR] = {0}; // 初始化字符频率数组,用于统计每个字符出现的次数
    int n = strlen(str); // 计算字符串的长度(不包括结束符'\0')
    for (int i = 0; i < n; i++) { // 遍历字符串中的每个字符并统计其频率,这里只考虑了英文字母和空格等常见字符,其他字符可以按需处理。
        if (isalpha(str[i])) { // 如果当前字符是英文字母(包括大小写)则增加其频率计数,其他情况可以按需处理。
            freq[toupper(str[i]) - 'A']++; // 将大写字母的索引位置增加其频率计数;小写字母同理处理,这里假设了字符串中只包含英文字母和空格等常见字符,如果包含其他字符,则需要相应地调整代码以正确处理这些情况。
        } else if (str[i] == ' ') { // 如果当前字符是空格,则也可以根据需要增加其频率计数(如果需要的话),这里只是简单地跳过空格不作处理,如果需要处理空格,则可以在这里增加其频率计数,其他非英文字母和非空格的字符可以按需处理,可以忽略它们或者将它们归入其他类别进行计数等操作,具体实现取决于具体的应用场景和需求。} else { // 其他非英文字母和非空格的字符可以按需处理(例如忽略它们或者归入其他类别进行计数等操作),具体实现取决于具体的应用场景和需求。} } } // ...(此处省略了其他代码) return 0; } ``` 在这个示例中,我们首先定义了一个足够大的数组来存储每个字符的频率,然后我们遍历输入字符串中的每个字符,并使用一个简单的条件语句来增加对应字符的频率计数,注意这个示例只考虑了英文字母和空格等常见字符的情况,如果需要处理其他类型的字符(如中文等),则需要相应地调整代码以正确处理这些情况。
  • 如何用文档设计网页版
  • include
  • include
  • 7月25日操盘必读:影响股市利好或利空消息
  • 北京楼市博弈:有项目卖出87亿元,有项目去化不足3成
  • include 包含8051单片机的寄存器定义
  • 受美关税政策影响 德国大众汽车上半年损失约15亿美元
  • 成都宽带选择指南,哪种宽带最值得你考虑?
  • include
  • C语言中如何使用for循环以及如何跳出循环语句
  • include
  • 经济数据低于预期,黄金走势震荡上涨
  • include
  • include
  • 广联航空董事长被立案调查,公司未来发展面临什么考验
  • 如何选择菲律宾房产服务
  • 本文"include"文章版权声明:除非注明,否则均为技术百科网原创文章,转载或复制请以超链接形式并注明出处。

    include

    取消
    微信二维码
    微信二维码
    支付宝二维码