| 
 | 
 
 
 楼主 |
发表于 2020-8-4 22:21:44
|
显示全部楼层
 
 
 
 
#include <stdio.h> 
#include <string.h> 
 
#define NUM 128 
 
int main() 
{ 
        int ch, i, j = 0, max = 0; 
        int input_num = 0; 
        int ascii[NUM] = {0}; 
        char count[NUM] = ""; 
 
        printf("请输入英文文本:"); 
 
        while ((ch = getchar()) != '\n') 
        { 
                ascii[ch]++; // 字符对应的ASCII码加1 
                input_num++; 
        } 
 
        for (i = 0; i < NUM; i++) 
        { 
                if (ascii[i]) 
                { 
                        count[j++] = i; 
                        if (ascii[i] > ascii[max]) 
                        { 
                                max = i; 
                        } 
                } 
        } 
 
        printf("你总共输入了%d个字符,其中不同的字符个数有%d个。\n", input_num, strlen(count)); 
        printf("它们是:%s\n", count); 
        printf("出现次数最多的字符是\'%c\',它总共出现了%d次。\n", max, ascii[max]); 
 
        return 0; 
}[/code] 
 
这个for开始又给我整懵了 我理解他不是从i=0开始,然后如果ascii[i] 有值,那这里的i比如说等于97,也就是你刚说的a。下面他又 count[j++]=i;就这里给我整懵了 。你看下我前面说的对不对头 |   
 
 
 
 |