Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

那位高手帮我看看哪里出错 WA阿 找了很久也找不到错误

Posted by cluall at 2005-08-10 10:15:58 on Problem 1026
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int n;
int code[201];
int k;
int table[201];

void init()
{
	int i,count,rec;
	memset(table,0,sizeof(table));
	for( i=0;i<=n;i++ )
		table[i]=code[i];
	i=1;
	while(i<=n)
	{
		count=1;
		while( table[i]!=i )
		{
			table[i]=code[table[i]];
			count++;
		}
		table[i]=count;
		i++;
	}
}

void encode(char *mes)
{
	int i,temp,j;
	char output[201];
	int offset[201];
	for( i=0;i<=n;i++ )
		offset[i]=i;
	memset(output,0,sizeof(output));
	i=1;
	while(i<=n)
	{
		temp=k%table[i];
		for(j=1;j<=temp;j++)
			offset[i]=code[offset[i]];
		output[offset[i]]=mes[i];
		i++;
	}
	strcpy(mes,output);
	for(i=1;i<=n;i++)
		printf("%c",output[i]);
	printf("\n");
}

int main()
{
	freopen("in.txt","r",stdin);

	char mes[201];
	int i;
    scanf("%d",&n);
	while( n!=0 )
	{			
		memset(code,0,sizeof(code));
		for( i=1;i<=n;i++ )
			scanf("%d",&code[i]);  
		init();
	    scanf("%d",&k);
		while( k!=0 )
		{	
			memset(mes,0,sizeof(mes));
			gets(mes);			
			int len=strlen(mes);
			if( strlen(mes) < n )
				for(i=strlen(mes);i<n;i++)
					mes[i]=' ';					
			encode(mes);
			scanf("%d",&k);				
		}
		printf("\n");
		scanf("%d",&n);
	}
	return 0;
}



Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator