一道 答案不被接受的 acm

来源:互联网 发布:埃及金字塔谁建的知乎 编辑:程序博客网 时间:2024/04/28 19:31
 冒泡排序
时间限制(普通/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 400int 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
原创粉丝点击