void input(SqList L){ ElemType i = 0; while(L.length != i){ cout<<L.elem[i]<<" "; i++; } cout<<endl; }
时间: 2024-05-23 22:16:15 浏览: 36
这是一个输入顺序表的函数,其参数为一个顺序表 L。函数中使用了 while 循环来遍历顺序表中的元素,并输出每个元素的值。具体实现如下:
1. 声明一个变量 i,初始化为 0。
2. 当顺序表的长度不等于 i 时,进入循环。
3. 输出当前元素的值,即 L.elem[i]。
4. i 自增 1。
5. 循环结束后,在末尾输出一个换行符。
需要注意的是,该函数并没有对顺序表进行修改,因此参数 L 应该声明为 const SqList& L,表示该函数不会修改 L 中的内容。
相关问题
#include <iostream> #include <cstring> #define MAX 10001 using namespace std; typedef char ElemType; typedef struct List{ ElemType elem[MAX]; int Length; }SqList; int n=0; void compare(SqList P); SqList L[MAX]; int main(){ while(cin>>L[n].elem){ if(L[n].elem[0]=='#') break; L[n].Length=strlen(L[n].elem); n++; } SqList P; while(cin>>P.elem){ if(P.elem[0]=='#') break; P.Length=strlen(P.elem); compare(P); } } void compare(SqList P){ int cnt=0,i; for(i=0;i<n;i++){ if(strcmp(L[i].elem,P.elem)==0) cout<<P.elem<<" is correct"<<endl; cnt=1; break; } if(cnt==0){ cout<<P.elem<<":"; int j,k; for(i=0;i<n;i++){ if(P.Length-L[i].Length==1){ int nt=0; for(j=0,k=0;L[i].elem[j]!='\0';j++,k++){ if(L[i].elem[j]!=P.elem[k]){ nt++; k--; } if(nt>=2) break; } if(nt<=1) cout<<" "<<L[i].elem; } if(L[i].Length-P.Length==1){ int nt=0; for(j=0,k=0;P.elem[k]!='\0';j++,k++){ if(L[i].elem[j]!=P.elem[k]){ nt++; k--; } if(nt>=2) break; } if(nt<=1) cout<<" "<<L[i].elem; } if(P.Length-L[i].Length==0){ int nt=0; for(j=0,k=0;P.elem[j]!='\0';j++,k++){ if(P.elem[j]!=L[i].elem[k]){ nt++; } if(nt>=2) break; } if(nt<=1) cout<<" "<<L[i].elem; } } cout<<endl; } }
这段代码是一个单词矫正程序,它会将用户输入的单词与一个预设的单词库进行比较,如果匹配则输出 "is correct",否则输出与用户输入单词差别最小的单词。该程序使用了 C++ 的结构体和数组来存储单词库中的每个单词的信息,使用了字符串比较函数 strcmp() 来比较单词是否相同,使用了循环来遍历单词库中的每个单词,并对每个单词与用户输入的单词进行匹配。
以顺序表作存储结构,实现线性表的创建、插入。 顺序表的类型描述 #define MAXSIZE 10 // MAXSIZE为最大数据元素数目 typedef int ElemType; typedef struct { ElemType *elem; int length; } SqList; 输入格式: 输入分三行 第一行 元素个数 第二行 元素的值。元素间以空格分隔。 第三行 待插入的位置和元素值 具体格式参看输入样例 输出格式: 输出分两行 第一行 插入前的线性表 第二行 插入后的线性表。 如因插入位置错误失败,输出Insert position error! 如因为表满插入失败,输出OVERFLOW! 具体格式参看输出样例 输入样例: 5 1 3 5 7 9 3 4 输出样例: Before:(1,3,5,7,9) After:(1,3,4,5,7,9) 输入样例: 5 1 3 5 7 9 7 10 输出样例: Before:(1,3,5,7,9) Insert position error! 输入样例: 10 1 2 3 4 5 6 7 8 9 10 6 7 输出样例: Before:(1,2,3,4,5,6,7,8,9,10) OVERFLOW!
以下是完整的C++代码实现:
```cpp
#include <iostream>
using namespace std;
#define MAXSIZE 10 // MAXSIZE为最大数据元素数目
typedef int ElemType;
typedef struct {
ElemType *elem;
int length;
} SqList;
void InitList(SqList &L, int n) {
L.elem = new ElemType[MAXSIZE];
L.length = min(n, MAXSIZE);
for (int i = 0; i < L.length; i++) {
cin >> L.elem[i];
}
}
void PrintList(SqList L) {
cout << "Before:(";
for (int i = 0; i < L.length; i++) {
cout << L.elem[i];
if (i != L.length - 1) {
cout << ",";
}
}
cout << ")" << endl;
}
bool ListInsert(SqList &L, int i, ElemType e) {
if (i < 1 || i > L.length + 1) {
cout << "Insert position error!" << endl;
return false;
}
if (L.length >= MAXSIZE) {
cout << "OVERFLOW!" << endl;
return false;
}
for (int j = L.length - 1; j >= i - 1; j--) {
L.elem[j + 1] = L.elem[j];
}
L.elem[i - 1] = e;
L.length++;
return true;
}
int main() {
SqList L;
int n, i, e;
cin >> n;
InitList(L, n);
cin >> i >> e;
PrintList(L);
if (ListInsert(L, i, e)) {
PrintList(L);
}
return 0;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![csv](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)