现在的位置: 首页 > 综合 > 正文

ZOJ 2172 Symmetric Order

2013年10月05日 ⁄ 综合 ⁄ 共 709字 ⁄ 字号 评论关闭

ZOJ    2172     Symmetric Order

     题意:要求把输入的n个人的名字按照名字长度两头短中间长那样排列输出,并且如果是相同长度的,不能破坏先后顺序。

     思路:用结构体存的。呵呵,嗯,这道题是大一寒假的时候写的,今天暑假训练的时候老师拿出来讲,突然发现原先写的代码竟然还排序?!用不着排序,这道题就是字符串的输入输出,练习的是存储结构。老师竟然用了二维数组,用其中一维来表示字符串的位置,另一维用来存储字符串。指针思想,我无耻的表示当我发现老师是这样存储的时候老师已经讲完了。= =|没用过,有压力。

     代码:

    

#include<stdio.h>
#include<string.h>
int main(){
	int i,j,N;
	struct name{
		char letter[50];
	}n[50];
	for(i = 1;;i++){
		scanf("%d",&N);
		if(N==0)
			break;
		for(j = 0;j<=N-1;j++)
			scanf("%s",n[j].letter);
		printf("SET %d\n",i);
		if(N%2!=0){
		for(j = 0;j<=N-1;j = j+2){
			printf("%s\n",n[j].letter);
		}
		for(j = N-2;j>=1;j = j-2){
			printf("%s\n",n[j].letter);
		}
		}
		if(N%2==0){
		for(j = 0;j<=N-2;j = j+2){
			printf("%s\n",n[j].letter);
		}
		for(j = N-1;j>=1;j = j-2){
			printf("%s\n",n[j].letter);
		}
		}
	}
	return 0;
}

 

 

       

抱歉!评论已关闭.