//////////////////////////////////////////////////////////////////
// ZOJ:2481
// 要求:对输入数字进行排列然后去除重复的数字并输出
// 排序用的是冒泡
/////////////////////////////////////////////////////////////////
#include "stdio.h"
int main()
{
int n;
int i;
int a[200] = {0};
while (scanf("%d", &n) && n != 0)
{
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
//用冒泡排序法排序
int j, k, flag = 1;
for (j = 0; j < n - 1 && flag != 0; j++)
{
flag = 0;
for (k = 0; k < n - j - 1; k++)
{
int temp;
if (a[k] > a[k + 1])
{
temp = a[k];
a[k] = a[k + 1];
a[k + 1] = temp;
flag = 1;
}
}
}
int x;
int m = n;
//去除重复的数字
for (x = 0; x < m;)
{
if (a[x] == a[x + 1])
{
int y;
for (y = x + 1; y < m; y++)
{
a[y] = a[y + 1];
}
x = 0;
m--;
}
else
{
x++;
}
}
int l;
for (l = 0; l < m; l++)
{
if (l != m - 1)
{
printf("%d ", a[l]);
}
else
{
printf("%d", a[l]);
}
}
printf("/n");
}
return 0;
}
ZOJ 2481 C++ AC
最新推荐文章于 2023-03-26 15:49:02 发布
本文介绍了使用冒泡排序法对输入数字进行排序,并通过循环去除排序后重复的数字,展示了算法实现过程。
388

被折叠的 条评论
为什么被折叠?



