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

请巨牛帮忙:咋会runtime Error??

Posted by wangerwuya at 2007-10-27 02:55:26 on Problem 1035
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<cctype>
using namespace std;

struct Range{
	int begin;
	int end;
	Range():begin(-1),end(-1){}
};

int getNum(string& s){
return (s[0]-97);}

void lookUp(string&,vector<string>&,vector<Range>&);
void changeIt(string&,vector<string>&);
void replaceIt(string&,string&);
void addIt(string&,string&);
void deleteIt(string&,string&);

int main(){
	cout<<"Enter your right string to dictionary\n";
	string s;
	vector<string>dictionary;
	
	while(getline(cin,s)&&s!="#")
		dictionary.push_back(s);
	
	sort(dictionary.begin(),dictionary.end());

	vector<Range>line(24);
	for(unsigned int i=0;i<=dictionary.size()-1;i++)
		if(line[getNum(dictionary[i])].begin==-1){
			line[getNum(dictionary[i])].begin=i;
			line[getNum(dictionary[i])].end=i;
		}
		else line[getNum(dictionary[i])].end++;
			
	cout<<"Enter the bubble word:\n";
	vector<string>customer;
	while(getline(cin,s)&&s!="#")
		customer.push_back(s);


	for(unsigned int i=0;i<=customer.size()-1;i++)
		lookUp(customer[i],dictionary,line);
}

void lookUp(string&word,vector<string>&dictionary,vector<Range>&line){
	if(line[getNum(word)].begin>=0)
		for(int i=line[getNum(word)].begin;i<=line[getNum(word)].end;i++)
			if(word==dictionary[i]){
				cout<<word<<" is correct\n";
				return;
			}
			else if(word<dictionary[i]){
				changeIt(word,dictionary);
				return;
			}
			else ;
	changeIt(word,dictionary);
	
	return;
}

void changeIt(string&word,vector<string>&dictionary){
	cout<<word<<': ';
	for(unsigned int i=0;i<=dictionary.size()-1;i++)
		if(word.size()==dictionary[i].size())
			replaceIt(word,dictionary[i]);
		else if(word.size()+1==dictionary[i].size())
			addIt(word,dictionary[i]);
		else if(word.size()==dictionary[i].size()+1)
			deleteIt(word,dictionary[i]);
		else ;
	
	cout<<'\n';
}

void replaceIt(string&word,string&answer){
	bool flag=false;
	for(unsigned int i=0;i<=word.size()-1;i++){
		if(!flag&&word[i]!=answer[i]){
			i++;
			flag=true;
		}
		if(flag&&word[i]!=answer[i])
			return;
	}
	cout<<' '<<answer;
}

void addIt(string&word,string&answer){
	unsigned int i=0;
	for(;i<=word.size()-1;i++)
		if(word[i]!=answer[i])
			break;
	for(unsigned int j=i;j<=word.size()-1;j++)
		if(word[j]!=answer[j+1])
			return;
	
	cout<<' '<<answer;
}

void deleteIt(string&word,string&answer){
	unsigned int i=0;
	for(;i<=answer.size()-1;i++)
		if(word[i]!=answer[i])
			break;
	for(unsigned int j=i;j<=answer.size()-1;j++)
		if(word[j+1]!=answer[j])
			return;
	
	cout<<' '<<answer;
}




在visual studio上都好好的,结果为何就runtime error呢?实在不懂。。。。到底是出现溢出,
还是。。。。但为何在studio上都行呢?

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