#include<iostream> #include <iomanip> #include <bits/stdc++.h> using namespace std; void Check(struct SqList b); int k=0;//l=0; typedef struct SqList { char word[20]; int length; } SqList; SqList a[10000],b[50]; int main() { //输入字典和待检测单词组 两个几乎一样的输入 for(int i=0;scanf("%s",&a[i])!=EOF;i++) { if(a[i].word[0]=='#') break; a[i].length=strlen(a[i].word); k++; } for(int i=0;scanf("%s",&b[i])!=EOF;i++) { if(b[i].word[0]=='#') break; b[i].length=strlen(b[i].word); //l++; Check(b[i]); } ///检测函数 } void Check(struct SqList b) { int num=0,o=1; for(int j=0;j<k;j++)//字典词 { if(strcmp(b.word,a[j].word)==0) { cout<<b.word<<" is correct"<<endl; o=0; break; } } if(o) { cout<<b.word<<":"; for(int j=0;j<k;j++) { if(b.length==a[j].length+1) { num=0; for(int m=0,n=0;a[j].word[m]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) { num++; m--; } if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } else if(b.length==a[j].length-1) { num=0; for(int m=0,n=0;b.word[n]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) { num++; n--; } if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } else if(b.length==a[j].length) { num=0; for(int m=0,n=0;a[j].word[m]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) num++; if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } } cout<<endl; } } 的程序运行流程
理解问题#include<iostream> #include <iomanip> #include <bits/stdc++.h> using namespace std; void Check(struct SqList b); int k=0;//l=0; typedef struct SqList { char word[20]; int length; } SqList; SqList a[10000],b[50]; int main() { //输入字典和待检测单词组 两个几乎一样的输入 for(int i=0;scanf("%s",&a[i])!=EOF;i++) { if(a[i].word[0]=='#') break; a[i].length=strlen(a[i].word); k++; } for(int i=0;scanf("%s",&b[i])!=EOF;i++) { if(b[i].word[0]=='#') break; b[i].length=strlen(b[i].word); //l++; Check(b[i]); } ///检测函数 } void Check(struct SqList b) { int num=0,o=1; for(int j=0;j<k;j++)//字典词 { if(strcmp(b.word,a[j].word)==0) { cout<<b.word<<" is correct"<<endl; o=0; break; } } if(o) { cout<<b.word<<":"; for(int j=0;j<k;j++) { if(b.length==a[j].length+1) { num=0; for(int m=0,n=0;a[j].word[m]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) { num++; m--; } if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } else if(b.length==a[j].length-1) { num=0; for(int m=0,n=0;b.word[n]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) { num++; n--; } if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } else if(b.length==a[j].length) { num=0; for(int m=0,n=0;a[j].word[m]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) num++; if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } } cout<<endl; } } 的程序运行流程
已完成理解「#include<iostream> #include <iomanip> #include <bits/stdc++.h> using namespace std; void Check(struct SqList b); int k=0;//l=0; typedef struct SqList { char word[20]; int length; } SqList; SqList a[10000],b[50]; int main() { //输入字典和待检测单词组 两个几乎一样的输入 for(int i=0;scanf("%s",&a[i])!=EOF;i++) { if(a[i].word[0]=='#') break; a[i].length=strlen(a[i].word); k++; } for(int i=0;scanf("%s",&b[i])!=EOF;i++) { if(b[i].word[0]=='#') break; b[i].length=strlen(b[i].word); //l++; Check(b[i]); } ///检测函数 } void Check(struct SqList b) { int num=0,o=1; for(int j=0;j<k;j++)//字典词 { if(strcmp(b.word,a[j].word)==0) { cout<<b.word<<" is correct"<<endl; o=0; break; } } if(o) { cout<<b.word<<":"; for(int j=0;j<k;j++) { if(b.length==a[j].length+1) { num=0; for(int m=0,n=0;a[j].word[m]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) { num++; m--; } if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } else if(b.length==a[j].length-1) { num=0; for(int m=0,n=0;b.word[n]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) { num++; n--; } if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } else if(b.length==a[j].length) { num=0; for(int m=0,n=0;a[j].word[m]!='\0';m++,n++) { if(a[j].word[m]!=b.word[n]) num++; if(num>=2) break; } if(num<=1) cout<<" "<<a[j].word; } } cout<<endl; } } 的程序运行流程」
展开阅读网页