#include<stdio.h> typedef struct world { char point1; char point2; int b[100]; }WORLD; int main() { int i,j; char a[100]; int b[26]={0}; WORLD temp[100]; WORLD wor[26]={{'A','a',b[0]}, {'B','b',b[1]}, {'C','c',b[2]}, {'D','d',b[3]}, {'E','e',b[4]}, {'F','f',b[5]}, {'G','g',b[6]}, {'H','h',b[7]}, {'I','i',b[8]}, {'J','j',b[9]}, {'K','k',b[10]}, {'L','l',b[11]}, {'M','m',b[12]}, {'N','n',b[13]}, {'O','o',b[14]}, {'P','p',b[15]}, {'Q','q',b[16]}, {'R','r',b[17]}, {'S','s',b[18]}, {'T','t',b[19]}, {'U','u',b[20]}, {'V','v',b[21]}, {'W','w',b[22]}, {'X','x',b[23]}, {'Y','y',b[24]}, {'Z','z',b[25]} }; for(i=0;i<100;i++) { a[i]=getchar(); if(a[i]=='\n') { break; } } for(i=0;a[i]!='\n';i++) { if('a'<=a[i]&&a[i]<='z') { wor[a[i]-'a'].b[a[i]-'a']++; } else if('A'<=a[i]&&a[i]<='Z') { wor[a[i]-'A'].b[a[i]-'A']++; } } for(i=0;i<25;i++) { for(j=i+1;j<26;j++) { if(wor[j].b[j]>wor[i].b[i]) { temp[100]=wor[j]; wor[j]=wor[i]; wor[i]=temp[100]; } } } for(i=0;i<26;i++) { printf("%c(%c):%d\n",wor[i].point1,wor[i].point2,wor[i].b[i]); } return 0; }
时间: 2024-01-05 17:05:16 浏览: 23
这是一个统计输入字符串中每个字母出现次数并按照出现次数从大到小排序的 C 语言程序。程序定义了一个结构体 WORLD,包含了两个字符和一个整型数组。在程序开始之前,定义了一个 WORLD 数组 wor,其中包含了每个英文字母的信息。程序先读入一个字符串,然后遍历字符串中的每个字符,统计每个字母出现的次数,最后使用冒泡排序将 wor 数组中的结构体按照出现次数从大到小排序,并输出结果。程序中有一些小问题,比如结构体数组 temp 的大小是 100,而循环中只用到了 temp[100],应该将数组大小改为 26。此外,在统计字母出现次数的循环中,如果直接将 a[i] 减去 'a' 或 'A',会出现负数,应该减去对应字母的 ASCII 码。
相关问题
#include <stdio.h> #include <malloc.h> typedef char ElemType; typedef struct LNode
#include <stdio.h> 和 #include <malloc.h> 是 C 语言中的头文件,前者用于输入输出,后者用于内存动态分配和释放。
typedef char ElemType; 定义了一个名为 ElemType 的数据类型,实际上是 char 类型。
typedef struct LNode 定义了一个名为 LNode 的结构体类型。
该结构体类型中可以包含多个成员变量,具体定义方式如下:
typedef struct LNode {
int data;
struct LNode* next;
} LNode;
这里定义了一个 LNode 结构体类型,其中包含两个成员变量:data 和 next。data 是一个整型变量,next 是一个指向 LNode 类型的指针变量。这种结构体类型通常用于链表的实现。
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef struct
这段代码是C语言中的头文件引用和一些定义的示例。其中,`#include <stdio.h>`和`#include <stdlib.h>`是用来引入标准库函数的头文件。`stdio.h`包含了输入输出相关的函数,如`printf`和`scanf`;`stdlib.h`包含了一些常用的函数,如内存分配函数`malloc`和随机数生成函数`rand`。
`#define MAXSIZE 100`是一个宏定义,用来定义一个常量`MAXSIZE`,它的值为100。
`typedef int ElemType;`是用来给`int`类型起一个别名`ElemType`,方便在代码中使用。
至于代码中的结构体部分,由于你没有提供完整的代码,所以无法给出具体的解释。但一般来说,结构体用于定义一种自定义的数据类型,可以包含多个不同类型的成员变量。