菜鸟的C语言题解

BlueDream 发表于 1年前 · 关联问题 性质判断

#include <stdio.h> #include <stdlib.h> int index(int a[]);//声明函数,用于返回sum数组中保存的数字第一次出现的下标 int main() { //输入 char str[5001]; int sum[26] = {0};//定义一维数组,用于保存字母组合aa~zz的统计次数 gets(str); //统计aa~zz出现次数 for(int i = 0; str[i] != '\0'; i++){ if(str[i] == str[i + 1]){ sum[str[i] - 97] += 1;//每出现一次字母组合,以"字母对应ASCII值 - 97"作为下标,保存到sum数组 } } //输出 int temp;//保存下标 for(int i = 0; i < 26; i++){ temp = index(sum); if(temp != -1) printf("%c%c ", temp + 97, temp + 97); sum[temp] = 0;//将最大值去除,防止重复 } } int index(int a[]) { int num = -1; int big = 0; for(int i = 0; i < 26; i++){ if(a[i] > big){ big = a[i]; num = i; } } return num; }