请用c语言实现并写出以下代码: 设计一个算法统计输入字符串中不同字符出现的频度并将结果存入文件(字符串中的合法字符为A~Z)和0~9
时间: 2024-05-07 10:16:16 浏览: 145
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int freq[36] = {0}; // 36个字符的频度数组
int len, i;
printf("请输入字符串(长度不超过%d):\n", MAX_LEN);
fgets(str, MAX_LEN, stdin);
len = strlen(str);
for (i = 0; i < len; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') { // 大写字母
freq[str[i] - 'A']++;
} else if (str[i] >= '0' && str[i] <= '9') { // 数字
freq[str[i] - '0' + 26]++;
}
}
FILE *fp;
fp = fopen("freq.txt", "w");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
for (i = 0; i < 26; i++) { // 大写字母
fprintf(fp, "%c: %d\n", i + 'A', freq[i]);
}
for (i = 26; i < 36; i++) { // 数字
fprintf(fp, "%d: %d\n", i - 26, freq[i]);
}
fclose(fp);
printf("已将结果存入文件freq.txt中\n");
return 0;
}
```
阅读全文