编写一个程序,打印输出中各个字符出现频度的直方图
时间: 2023-04-01 08:01:43 浏览: 66
好的,我可以回答这个问题。以下是一个简单的程序示例:
#include <stdio.h>
#include <ctype.h>
#define MAX_CHAR 128
int main()
{
int c, i, j;
int freq[MAX_CHAR] = {};
while ((c = getchar()) != EOF)
{
if (isascii(c))
freq[c]++;
}
for (i = ; i < MAX_CHAR; i++)
{
if (freq[i] > )
{
printf("%c: ", i);
for (j = ; j < freq[i]; j++)
putchar('*');
putchar('\n');
}
}
return ;
}
这个程序会读取输入,统计每个字符出现的次数,然后输出一个直方图,用星号表示每个字符出现的频度。注意,这个程序只能处理 ASCII 字符,如果输入中包含非 ASCII 字符,程序可能会出错。
相关问题
编写一个Python程序来打印字符串中某个字符的索引。
以下是一个简单的Python程序,它接受一个字符串和一个字符,并打印该字符在字符串中的所有索引:
```python
def print_indexes(string, char):
for i in range(len(string)):
if string[i] == char:
print(i)
string = "Hello World"
char = "l"
print_indexes(string, char)
```
输出:
```
2
3
9
```
该程序定义了一个 `print_indexes` 函数,它使用一个循环来遍历字符串中的每个字符。如果当前字符与指定的字符相同,则打印该字符的索引。在主程序中,我们定义了一个字符串和一个字符,然后调用 `print_indexes` 函数来打印字符在字符串中的所有索引。
用c语言统计一个字符串中各个字符出现的次数并输出
好的,我可以回答这个问题。下面是用C语言统计一个字符串中各个字符出现的次数并输出的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, len, freq[256] = {0}; // 256是ASCII码表总共的字符数,freq用来记录每个字符出现的次数
printf("请输入一个字符串:\n");
fgets(str, 100, stdin); // 从标准输入读取一个字符串,最多读取100个字符
len = strlen(str);
for (i = 0; i < len; i++) {
freq[(int)str[i]]++; // 统计字符出现的次数
}
printf("字符出现的次数:\n");
for (i = 0; i < 256; i++) {
if (freq[i] != 0) { // 只输出出现过的字符
printf("%c 出现了 %d 次\n", i, freq[i]);
}
}
return 0;
}
```
运行该程序,输入一个字符串,即可统计该字符串中各个字符出现的次数并输出。