华为机试题:输入一组大于等于0的整数,从小到大排序输出,输出有连续数时,只输出连续数的最小和最大值
2016-07-10 18:09
381 查看
输入整数是字符串,字符串的最大长度为128.输入的整数用','分开,样例输入 1,4,3,11,2,9,7
样例输出:1,4,7,9,11
#include "stdio.h"
void sort(int array[],int size)
{
int i,j,temp,flag;
for(i=0;i<size;i++)
{
flag = 0;
for(j=size-1;j>i;j--)
{
//如果前一个数大于后一个数,则交换
if(array[j-1]>array[j])
{
temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
flag = 1;
}
}
//如果本次排序没有进行一次交换,则break,减少了执行之间。
if(flag == 0)
{
break;
}
}
}
void display(int array[],int size)
{
int i;
for(i = 0;i<size;i++)
{
if(array[i] != array[i+1]-1)
{
printf("%d ",array[i]);
}
else
{
printf("%d ",array[i]);
while(array[i] == array[i+1]-1)
{
i++;
}
printf("%d ",array[i]);
}
}
}
main()
{
int array[] ={1,4,3,11,2,9,7};int size=7;
sort(array,size);
display(array,size);
}
样例输出:1,4,7,9,11
#include "stdio.h"
void sort(int array[],int size)
{
int i,j,temp,flag;
for(i=0;i<size;i++)
{
flag = 0;
for(j=size-1;j>i;j--)
{
//如果前一个数大于后一个数,则交换
if(array[j-1]>array[j])
{
temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
flag = 1;
}
}
//如果本次排序没有进行一次交换,则break,减少了执行之间。
if(flag == 0)
{
break;
}
}
}
void display(int array[],int size)
{
int i;
for(i = 0;i<size;i++)
{
if(array[i] != array[i+1]-1)
{
printf("%d ",array[i]);
}
else
{
printf("%d ",array[i]);
while(array[i] == array[i+1]-1)
{
i++;
}
printf("%d ",array[i]);
}
}
}
main()
{
int array[] ={1,4,3,11,2,9,7};int size=7;
sort(array,size);
display(array,size);
}
相关文章推荐
- 2015届华为校园招聘机试题-本人菜鸟,尝试解答-工具Eclipse
- 【华为机试题】删除输入字符串中重复字符
- 【华为机试题】将输入字符串中的大写字符改为小写,标点符号空格等删除
- 【华为机试题】将输入字符串中的大写字符改为小写,标点符号空格等删除
- 华为机试题:输入一组大于等于0的整数,从小到大排序输出,输出有连续数时,只输出连续数的最小和最大值
- 华为机试题:输入一组大于等于0的整数,从小到大排序输出,输出有连续数时,只输出连续数的最小和最大值
- 华为机试题:输入一组大于等于0的整数,从小到大排序输出,输出有连续数时,只输出连续数的最小和最大值
- 华为机试题:输入一组大于等于0的整数,从小到大排序输出,输出有连续数时,只输出连续数的最小和最大值
- 华为机试题:输入一组大于等于0的整数,从小到大排序输出,输出有连续数时,只输出连续数的最小和最大值
- 华为机试题:输入一组大于等于0的整数,从小到大排序输出,输出有连续数时,只输出连续数的最小和最大值
- 排序算法之二 堆排序
- 记负均正
- 超长正整数相加
- 查找输入整数二进制中1的个数
- 汽水瓶
- 求int型正整数在内存中存储时1的个数
- 字符个数统计
- 提取不重复的整数
- 合并表记录
- 取近似值