2011年北邮网研上机题

//2011年网研院上机 A 字符串操作 
//2018/3/19
//by ben yafang
//done
#include<stdio.h>
#include<string.h>
int main(){
	char input[201];
	scanf("%s",input);
	int l = strlen(input);
	int t;
	scanf("%d",&t);//t种操作
	while(t--){
		int opera;
		scanf("%d",&opera);//0--翻转  1--替换
		int i,len;//从下标i开始,长度为len 
		if(opera == 0){
			scanf("%d%d",&i,&len); 
			int j,k;
			for(j=i,k=i+len-1;j<k;j++,k--){
				char temp;
				temp = input[j];
				input[j] = input[k];
				input[k] = temp;
			}
		} 
		else{
			char str[201];
			scanf("%d%d%s",&i,&len,str);
			int j;
			for(j = i;j < i+len;j++){
				input[j] = str[j-i];
			}
		}
		printf("%s\n",input);	
	}

}

//2011年网研院上机 B 虚数 
//2018/3/19
//by ben yafang
//done
#include<stdio.h>
#include<string.h>
#include<math.h>
int shibu[101],xubu[101];
int main(){
	int t;
	scanf("%d",&t);//case数
	while(t--){
		memset(shibu,0,sizeof shibu);
		memset(xubu,0,sizeof xubu);
		int index = 0;
		int n;
		scanf("%d",&n);//表示n条命令
		while(n--){
			char opera[7];
			scanf("%s",opera);
			int shi,xu;
			if(!strcmp(opera,"Insert")){
				char input[100];
				scanf("%s",input);
				int x,y;
//				char k = 0;
//				scanf("%d+i%d",&x,&y);
				if(sscanf(input,"%d+i%d%c",&x,&y)==2){
//					if(k==0){
					shibu[index] = x;
					xubu[index] = y;
					index++;
					printf("Size: %d\n",index);						
//					}
//					printf("%d %d\n",x,y);

				}
			}
			else{//"Pop"
				if(index == 0){
					printf("Empty!\n");
				}
				else{
					int tmp = 0;
					int j = 0;
					for(int i = 0;i < index;i++){
						if(pow(shibu[i],2)+pow(xubu[i],2) > tmp){
//							printf("%d %d\n",pow(shibu[i],2),pow(xubu[i],2));
							tmp = pow(shibu[i],2)+pow(xubu[i],2);
							shi = shibu[i];
							xu = xubu[i];
							j = i;
						}
					}
					for(int k = j;k < index-1;k++){
						shibu[k] = shibu[k+1];
						xubu[k] = xubu[k+1];
					}
					index--;
					printf("%d+i%d\n",shi,xu);
					if(index == 0)printf("Empty!\n");
					else{
//						printf("%d+i%d\n",shibu[j],xubu[j]);
						printf("Size: %d\n",index);
					} 
				}
			}
		} 
	} 
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值