#include<stdio.h> #include<stdlib.h> typedef struct Node { int curadd; int data; int nextadd; }Node; int main() { int n,k,firstadd,i,num,j; Node *a,temp; int c; while(scanf("%d%d%d",&firstadd,&n,&k)!=EOF) { a=(Node *)malloc(n*sizeof(Node)); for(i=0;i<n;i++) scanf("%d%d%d",&a[i].curadd,&a[i].data,&a[i].nextadd); num=0; while(firstadd!=-1) { j=num; while(a[j].curadd!=firstadd) j++; firstadd=a[j].nextadd; temp=a[num]; a[num]=a[j]; a[j]=temp; num++; } if(k>num) { for(i=0;i<num-1;i++) printf("%05d %d %05d ",a[i].curadd,a[i].data,a[i+1].curadd); printf("%05d %d -1 ",a[i].curadd,a[i].data); } else if(k==num) { for(i=num-1;i>0;i--) printf("%05d %d %05d ",a[i].curadd,a[i].data,a[i-1].curadd); printf("%05d %d -1 ",a[0].curadd,a[0].data); } else { c=num/k; for(i=0;i<c;i++) { for(j=0;j<k/2;j++) { temp=a[k*i+j]; a[k*i+j]=a[k*i+k-j-1]; a[k*i+k-j-1]=temp; } } for(i=0;i<num-1;i++) printf("%05d %d %05d ",a[i].curadd,a[i].data,a[i+1].curadd); printf("%05d %d -1 ",a[i].curadd,a[i].data); } } return 0; }
这道题目让我再一次鄙视自己,首先是对题目的意思不能完全理解!想了好多弯路。看了网上的解题报告理解了题目的意思再动手写代码。结果测试还是有一个测试点不能通过。由于害怕对题目没有完全理解,怕自己找不出错误,结果把问题摆在群里,浙大考研群的同学通过测试帮我把问题找出来了。还有个浙大高手直接把我代码的小问题找出来了。再一次鄙视自己!自己写的代码本来就乱糟糟,自己能理解清楚都费力。真心感谢帮助我的人!!!