一. 简介
本文学习一下,字符大小排序,获取最大值与最小值。
输出字符串中出现最多的字符,以及出现次数。
二. 冒泡法排序方法与获取最大最小值
1. 冒泡法排序
终端随机输入一个字符串,只包括字符0-9,字符串长度为 64 字节。
将字符从小到大排序,并找到最大值与最小值:
#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[65] = {0};
int i, j;
char chr_tmp = 0;
int len = 0;
scanf("%s", buf);
len = strlen(buf);
for(i=0; i<(len-1); i++) //大循环
{
for(j=0; j<(len-i-1); j++) //每一轮的小循环
{
if(buf[j] > buf[j+1])
{
chr_tmp = buf[j];
buf[j] = buf[j+1];
buf[j+1] = chr_tmp;
}
}
}
buf[len] = '\0';
printf("%s\n", buf);
//min值
printf("最小值: %c\n", buf[0]);
//max值
printf("最大值: %c\n", buf[len-1]);
return 0;
}
冒泡法排序原理,可以参考网友分析:
C语言——冒泡排序(分析详解)_冒泡排序c语言-CSDN博客
2. 输出 字符串中出现最多的字节,计算输出次数
终端随机输入一个字符串,字符串最大长度为 64个字节。
只包括字符0-9,输出 字符串中出现最多的字节,计算输出次数。
/*
1. 输入一个字符串,只包括字符0-9,将字符从小到大排序
字符串长度为 64 字节
*/
#include <stdio.h>
#include <string.h>
struct key{
int m;
int n;
};
int main(void)
{
char input[256] = {0};
char buf[256] = {0};
int i = 0, len = 0;
int temp = 0, max = 0;
scanf("%s", input);
len = strlen(input);
for(i=0; i<len; i++) //利用数组下标统计每个字符出现的次数
{
temp = input[i];
buf[temp] += 1;
}
for(i=0; i<256; i++) //找到最大次数值
{
if(buf[i] > max)
max = buf[i];
}
for(i=0; i<256; i++) //找到出现次数最多的字符
{
if(buf[i] == max)
{
printf("出现次数最多的字符为: %c\n", i);
printf("出现次数为: %d\n", max);
}
}
return 0;
}
以后代码经过运行测试。