一道 答案不被接受的 acm

 冒泡排序
时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 1369            测试通过 : 237 
比赛描述
给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中冒泡排序算法进行排序,并输出排序过程中每趟及最后结果的相应序列。


输入

共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤400,每个元素值范围为 [0,100000)

输出

三个部分
第1部分为两行,第1行输出文字“Source:”,第2行给出原始序列;
第2部分,开始输出文字“Bubble Sort:”,后续输出简单选择排序过程;
第3部分,开始输出文字“Result”,后续输出排序结果。
样例输入
7
48 36 68 72 12 48 2

样例输出
Source:
(48 36 68 72 12 48 2)
Bubble Sort:
(36 48 68 12 48 2) 72
(36 48 12 48 2) 68 72
(36 12 48 2) 48 68 72
(12 36 2) 48 48 68 72
(12 2) 36 48 48 68 72
(2) 12 36 48 48 68 72
Result
(2 12 36 48 48 68 72)

提示
 数据结构A实验四

题目来源

CHENZ



my answer:   《原因 再找    http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1063》

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define  NUM 400
int a[NUM];
int i =0;
static int offset = 0;

#define  Print()\
	do{\
	int p = 0;\
	 printf("(%d", a[0]);\
	if(offset == 0)\
		printf(")");\
	for(p=1; p <i ; p++)\
	{\
		printf(" %d", a[p]);\
		if(p == offset)\
		{	printf(")");\
		}\
	}\
	if(i == offset)\
		printf(")");\
	}\
	while(0);

int main()
{
	int  j =0;
	int  flg = 0;
	scanf("%d", &i);
	for(j; j<i; j++)
	{
		scanf("%d", &a[j]);
	}
 	printf("Source:\n");
	offset = i ;
	Print();
	printf("\nBubble Sort:\n");
	j=0; int k = 0, tmp =0 ;
	for(j; j<i; j++)
	{
		flg = 0;
		for(k=0; k<i-j-1; k++)
		{
			if(a[k] >  a[k+1])
			{
				tmp  = a[k];
				a[k] = a[k+1];
				a[k+1] = tmp ;
				flg = 1;
			}
		}
		offset = i - j -2;
		if(offset <= 0)
		{
			offset = 0;
		}
		Print();
		printf("\n");
		if(offset == 0)
			break;
	}
	printf("Result\n");
	offset = i-1;
	Print();
	printf("\n");
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiny丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值