程序代码:
#include <stdio.h>
#include <conio.h>
// 每組的數據
#define CHARACTERS_OF_GROUP 3
// 最大的組數目
#define MAX_GROUPS 50
// 通過指針傳參交換兩個字符
void swap(char* x, char* y)
{
char temp = *x;
*x = *y;
*y = temp;
}
// 排序一個字符數組
void sort(char* data, int size)
{
int i, j;
for (i = 0; i < size - 1; ++i)
{
for (j = i + 1; j < size; ++j)
{
if (data[i] > data[j])
{
swap(&data[i], &data[j]);
}
}
}
}
// 讀入數據
int Get_Data(char* data, int size)
{
int ch;
int count = 0;
printf_s("Input text: \n");
for (ch = getchar(); (ch != '.') && (ch != EOF); ch = getchar())
{
if ((ch != '\n') && (ch != '\t') && (ch != ' '))
{
data[count++] = ch;
}
}
return count;
}
// 程序主入口
int main(void)
{
char data[MAX_GROUPS];
int size = Get_Data(data, CHARACTERS_OF_GROUP * MAX_GROUPS);
int index;
// 分組排序
for (index = 0; index + CHARACTERS_OF_GROUP < size; index += CHARACTERS_OF_GROUP)
{
sort(&data[index], CHARACTERS_OF_GROUP);
}
sort(&data[index], size - index);
// 輸出結果
putchar('\n');
for (index = 0; index < size; ++index)
{
putchar(data[index]);
if ((index + 1) % CHARACTERS_OF_GROUP == 0)
{
putchar('\n');
}
else
{
putchar(' ');
}
}
putchar('\n');
printf_s("\nPress any key to continue...");
_getch();
return 0;
}
图片附件: 游客没有浏览图片的权限,请
登录 或
注册