实验 二 栈和队列的基本操作实现及其应用

更新时间:2024-01-14 05:41:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

软件114班李大宝 201100834416

数 据 结 构 实 验 报 告

(二) 姓名: 李 大 宝 学院:计算机学院 班级:软件114班

第1页

软件114班李大宝 201100834416

实验 二 栈和队列的基本操作实现及其应用 一、实验目的

1、熟练掌握栈和队列的基本操作在两种存储结构上的实现。 2、会用栈和队列解决简单的实际问题。

二、实验内容

题目一

试写一个算法,判断依次读入的一个以@为结束符的字符序列,是否为回文。所谓“回文“是指正向读和反向读都一样的一字符串,如“321123”或“ableelba”。

一、相关常量及结构定义:

# define STACK_INIT_SIZE 100 # define STACKINCREMENT 10 # define OK 1 # define ERROR 0

typedefcharSElemType; //把char类型定义为SElemType //栈类型定义

typedefstructSqStack

{ SElemType *base; //栈底

SElemType *top; //栈顶 intstacksize; //最大容量 }SqStack;

//队列类型定义

typedefstructQNode {

SElemType data; structQNode *next; }QNode,*QueuePtr; typedefstruct {

QueuePtr front; //队首 QueuePtr rear; //队尾 }LinkQueue;

二、设计相关函数声明: 判断函数:

intIsReverse()

栈:

intInitStack(SqStack&S )

int Push(SqStack&S, SElemType e ) int Pop(SqStack&S,SElemType&e) intStackEmpty(s)

队列;

第2页

软件114班李大宝 201100834416

intinitqueue(LinkQueue&Q)

intEnQueue(LinkQueue&Q,SElemType e) intDeQueue(LinkQueue&Q,SElemType&e)

三、函数说明: 1、栈初始化 /*

函数功能:对栈进行初始化 参数:栈(SqStack&S)

成功初始化返回1,否则返回0 */

intInitStack(SqStack&S) {

S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); //对栈申请空间。 if(!S.base)

exit(0); //未申请空间退出。 S.top=S.base;

S.stacksize=STACK_INIT_SIZE; return OK; }

2、弹出栈顶元素,并返回 /*

函数功能:对栈删除栈顶元素

参数:栈SqStack&S, 元素SElemType&e 用e返回栈顶元素 */

int Pop(SqStack&S,SElemType&e) {

if(S.top==S.base) //栈为空时返回错误。 return ERROR;

e=*--S.top; //成功返回栈顶元素 return OK; }

3、向栈中压入元素 /*

函数功能:向栈中压入元素

参数:栈SqStack&S, 元素SElemTypee

成功压入返回1,否则返回0 */

int Push(SqStack&S,SElemType e) {

if(S.top-S.base>=S.stacksize) //栈的大小过小时,从新申请内存 {

S.base=(SElemType

*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S.base) exit(0);

S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; }

*S.top++ = e; //成功压入元素。

第3页

软件114班李大宝 201100834416

return OK; }

4、栈是否为空 /*

函数功能:判断栈是否为空 参数:栈SqStackS

为空返回1,否则返回0 */

intStackEmpty(SqStack S) {

if(S.top==S.base) //为空条件S.top=S.base return OK; else

return ERROR; //不空返回0 }

5、队列初始化 /*

函数功能:对队列进行初始化 参数:队列(LinkQueue&Q)

成功初始化返回1,否则返回0 */

intinitqueue(LinkQueue&Q) {

Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode)); if(!Q.front) exit(ERROR); Q.front->next=NULL; return OK; }

6、入队 /*

函数功能:对队列进行入队

参数:队列LinkQueue&Q,元素SElemType e 成功入栈返回1 */

intEnQueue(LinkQueue&Q,SElemType e) {

QueuePtr p;

p=(QueuePtr)malloc(sizeof(QNode));//对p申请内存 if(!p)

exit(ERROR); //未申请到内存退出 p->data=e; p->next=NULL;

if(Q.rear==NULL) //队列为空时 {

Q.front->next=p; Q.rear=p; }

Else //队列不为空时 {

第4页

软件114班李大宝 201100834416

Q.rear->next=p;

Q.rear=p; //在队尾入栈 }

return OK;

}

7、出队 /*

函数功能:对队列进行出队

参数:队列LinkQueue&Q,元素SElemType&e 用元素e将队首元素进行返回 成功出栈返回1 */

intDeQueue(LinkQueue&Q,SElemType&e) {

if(Q.front==Q.rear)

return ERROR; //队空 QueuePtr p;

p=Q.front->next;

e=p->data; //队首元素 Q.front->next=p->next;

if(Q.rear==p) //p为最后一个元素时 Q.rear=Q.front;

free(p); //释放p节点 return OK; }

8、判断函数: /*

函数功能:判断字符串是否是回文字符串 参数:栈SqStack S,队列LinkQueue&Q

如果是回文字符串返回1,否则返回0 */

intIsReverse(SqStackS,LinkQueue Q) {

SElemTypea,b;

while(!StackEmpty(S)) //栈不为空时 {

Pop(S,a); DeQueue(Q,b);

if(a!=b) //栈顶元素与队首元素进行比较,不相等返回0 return 0; }

return 1; //栈与队列相同返回1,即字符串为回文字符串。 }

三、主函数设计

int main() {

char YES; //用来存放字符 do {

SElemType e; SqStack S;

第5页

软件114班李大宝 201100834416

}

LinkQueue Q;

InitStack(S); //初始化栈 initqueue(Q); //初始化队列

cout<<\请输入字符串以'@'结尾!\

while((e=getchar())!='@') //输入以@结束。 {

Push(S,e); //入栈 EnQueue(Q,e); //入队 }

if(IsReverse(S,Q)==1)//判断返回是否为1,为1就是回文字符串 cout<<\此字符串是回文字符串\ else

cout<<\此字符串不是回文字符串\ cout<<\是否继续,继续(y/Y),其他键退出\ cin>>YES;

getchar(); //getchar()接收缓冲区本来保存的东西 }while(YES=='y'||YES=='Y'); return 0;

四、程序调试及运行结果分析

程序完美运行。 特别注意: cin>>YES; getchar();

这里很容易出错getchar()是用来做缓冲。用getchar()接收缓冲区本来保存的东西

程序运行结果如下:

五、实验总结

通过这次试验我熟悉了对栈和队列的基本操作,对基本的栈和队列操作有了

第6页

软件114班李大宝 201100834416

很好的掌握,知道自己容易在什么地方出错。 六、程序清单

#include #include #include using namespace std;

# define STACK_INIT_SIZE 100 # define STACKINCREMENT 10 # define OK 1 # define ERROR 0

typedef char SElemType; typedefstructSqStack {

SElemType *base; SElemType *top; intstacksize; }SqStack;

typedefstructQNode {

SElemType data; structQNode *next; }QNode,*QueuePtr; typedefstruct {

QueuePtr front; QueuePtr rear; }LinkQueue;

intInitStack(SqStack&S) {

S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!S.base) exit(0); S.top=S.base;

S.stacksize=STACK_INIT_SIZE; return OK; }

int Pop(SqStack&S,SElemType&e) {

if(S.top==S.base) return ERROR; e=*--S.top; return OK; }

int Push(SqStack&S,SElemType e) {

if(S.top-S.base>=S.stacksize) {

S.base=(SElemType

*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S.base)

第7页

软件114班李大宝 201100834416

exit(0);

S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; }

*S.top++ = e; return OK; }

intStackEmpty(SqStack S) {

if(S.top==S.base) return OK; else

return ERROR; }

intinitqueue(LinkQueue&Q) {

Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode)); if(!Q.front) exit(ERROR); Q.front->next=NULL; return OK; }

intEnQueue(LinkQueue&Q,SElemType e) {

QueuePtr p;

p=(QueuePtr)malloc(sizeof(QNode)); if(!p)

exit(ERROR); p->data=e; p->next=NULL; if(Q.rear==NULL) {

Q.front->next=p; Q.rear=p; } else {

Q.rear->next=p; Q.rear=p; }

return OK; }

intDeQueue(LinkQueue&Q,SElemType&e) {

if(Q.front==Q.rear) return ERROR; QueuePtr p;

p=Q.front->next; e=p->data;

Q.front->next=p->next; if(Q.rear==p)

第8页

软件114班李大宝 201100834416

Q.rear=Q.front; free(p); return OK; }

intIsReverse(SqStackS,LinkQueue Q) {

SElemTypea,b;

while(!StackEmpty(S)) {

Pop(S,a); DeQueue(Q,b); if(a!=b)

return 0; }

return 1; }

int main() {

char YES; do {

SElemType e; SqStack S; LinkQueue Q; InitStack(S); initqueue(Q);

cout<<\请输入字符串以'@'结尾!\ while((e=getchar())!='@') {

Push(S,e); EnQueue(Q,e); }

if(IsReverse(S,Q)==1)

cout<<\此字符串是回文字符串\ else

cout<<\此字符串不是回文字符串\ cout<<\是否继续,继续(y/Y),其他键退出\ cin>>YES;

getchar(); //表示缓冲字符YES; }while(YES=='y'||YES=='Y'); return 0; }

STL标准模板库程序:

#include using namespace std; #include #include stack s;

第9页

软件114班李大宝 201100834416

queue q; intIsReverse() {

while(!s.empty()) {

if(s.top()!=q.front()) return 0; s.pop(); q.pop(); } return 1; }

int main() {

char YES; do {

cout<<\请输入字符串以'@'结尾!\ char e;

while((e=getchar())!='@') {

s.push(e); q.push(e); }

getchar();

if(IsReverse()==1)

cout<<\此字符串是回文字符串\ else

cout<<\此字符串不是回文字符串\ while(!s.empty()) s.pop(); while(!q.empty()) q.pop();

cout<<\是否继续,继续(y/Y),其他键退出\ cin>>YES; getchar();

}while(YES=='y'||YES=='Y'); }

题目二

编程模拟队列的管理,主要包括:出队列、入队、统计队列的长度、查找队列某个元素e、及输出队列中元素。

[实现提示]:参考教材循环队列的有关算法,其中后两个算法参考顺序表的实现。

第10页

软件114班李大宝 201100834416

一、相关结构定义

#define elemtypeint //定义int为elemtype类型 typedefstruct STD {

elemtype data; struct STD *next; }Qnode,*Queueptr; typedefstruct {

Queueptr front; //队首 Queueptr rear; //队尾 int count; }linkqueue;

二、函数说明: 1、初始化队列 /*

函数功能:对队列进行初始化 参数:队列(linkqueue&Q)

成功初始化返回1,否则返回0 */

intinit(linkqueue&Q) {

Q.front=Q.rear=(Queueptr)malloc(sizeof(Qnode)); //对队列申请空间。 if(!Q.front)

exit(0); //未申请空间退出。 Q.front->next=NULL; Q.count=0; return 1; }

2.出队 /*

函数功能:对队列进行出队

参数:队列linkqueue&Q,元素elemType&e 成功出栈返回1 */

intdequeue(linkqueue&Q) {

Queueptr p;

if(Q.front==Q.rear) //队空 return 0; p=Q.front->next;

Q.front->next=p->next;

if(Q.rear==p) //p为最后一个元素时 Q.rear=Q.front;

free(p); //释放p节点 Q.count--; //队长度减1 return 1; }

3.入队 /*

第11页

软件114班李大宝 201100834416

函数功能:对队列进行入队

参数:队列linkqueue&Q,元素elemType e 成功入栈返回1 */

intenqueue(linkqueue&Q,elemtype e) {

Queueptr p;

p=(Queueptr)malloc(sizeof(Qnode)); //对p申请内存 if(!p)

exit(0); //未申请到内存退出 p->data=e; p->next=NULL;

if(Q.front==NULL) //队列为空时 {

Q.front->next=p; Q.rear=p; }

Else//队列不为空时 {

Q.rear->next=p;

Q.rear=p;//在队尾入栈 }

Q.count++; //长度加1。 return 1; }

4.长度 /*

函数功能:返回队列的长度 参数:队列linkqueueQ

返回Q.count */

int length(linkqueue Q) {

return Q.count; //队列的长度 }

5.查找 /*

函数功能:在队列中查找元素

参数:队列linkqueueQ,元素elemtype e 找到返回1,否则返回0 */

int find(linkqueueQ,elemtype e) {

Queueptr p;

p=Q.front->next; while(p) {

if(p->data==e) //找到元素e返回1 return 1; p=p->next; }

第12页

软件114班李大宝 201100834416

return 0; //找不到元素e返回0 }

6.显示 /*

函数功能:显示队列中所有元素 参数:队列linkqueueQ

无返回值 */

void show(linkqueue Q) {

Queueptr p;

p=Q.front->next;

while(p) //队列元素不为空时 {

cout<data<<'\\t'; //输出元素值 p=p->next; }

cout<

7.主界面 /*

函数功能:操作主界面 参数:无

无返回值 */

voidzhujiemian() { cout<

//选择数字序号进行不同的操作

}

三、主函数设计

int main() { linkqueue Q; inta,b,c; zhujiemian(); cin>>a; while(a!=1) //第一步一定要对队列初始化 { cout<<\输入错误,必须先初始化,请重新输入:\ cin>>a; } cout<

第13页

软件114班李大宝 201100834416

}

{ switch(a) { case 1: if(init(Q)==1) cout<<\初始化成功!\ else cout<<\初始化失败!\ break; case 2: if(length(Q)==0) { cout<<\队列为空无法出队!\ break; } if(dequeue(Q)==1) cout<<\删除成功!\ else cout<<\删除失败!\ break; case 3: cout<<\输入你要入队元素\ cin>>c; if(enqueue(Q,c) ==1) cout<<\入队成功!\ else cout<<\入队失败!\ break; case 4: b=length(Q); cout<<\队列的长度为:\ break; case 5: cout<<\您要查找的元素:\ cin>>b; if(find(Q,b)==1) cout<<\恭喜您,队列中有您要找的元素\ else cout<<\不好意思,队列中没有您要找的元素\ break; case 6: if(length(Q)==0) { cout<<\队列为空!\ break; } show(Q); break; default: break; } system(\按任意键继续 system(\清屏 zhujiemian(); cin>>a; cout<

}while(a>0&&a<=6); //判断输入的a是否在1-6之间。 return 0;

第14页

软件114班李大宝 201100834416

四、程序调试及运行结果分析 运行主界面:

操作界面清晰,方便操作。

入队:

出队:

当队列为空时不会出现错误。

第15页

软件114班李大宝 201100834416

查找:

五、实验总结

通过这个实验我明白了队列的基本操作,和熟练掌握了队列的基本实现。通过这次实验我懂得了关于队列该如何操作。 六、程序清单

#include #include #include #include #include

第16页

软件114班李大宝 201100834416

using namespace std; #define elemtypeint typedefstruct STD {

elemtype data; struct STD *next; }Qnode,*Queueptr; typedefstruct {

Queueptr front; Queueptr rear; int count; }linkqueue;

intinit(linkqueue&Q) {

Q.front=Q.rear=(Queueptr)malloc(sizeof(Qnode)); if(!Q.front) exit(0);

Q.front->next=NULL; Q.count=0; return 1; }

intdequeue(linkqueue&Q) {

Queueptr p;

if(Q.front==Q.rear) return 0; p=Q.front->next;

Q.front->next=p->next; if(Q.rear==p)

Q.rear=Q.front; free(p); Q.count--; return 1; }

intenqueue(linkqueue&Q,elemtype e) {

Queueptr p;

p=(Queueptr)malloc(sizeof(Qnode)); if(!p)

exit(0); p->data=e; p->next=NULL; if(Q.front==NULL) {

Q.front->next=p; Q.rear=p; } else {

Q.rear->next=p;

第17页

软件114班李大宝 201100834416

Q.rear=p; }

Q.count++; return 1; }

int length(linkqueue Q) {

returnQ.count; }

int find(linkqueueQ,elemtype e) {

Queueptr p;

p=Q.front->next; while(p) {

if(p->data==e) return 1; p=p->next; }

return 0; }

void show(linkqueue Q) {

Queueptr p;

p=Q.front->next; while(p) {

cout<data<<'\\t'; p=p->next; }

cout<

voidzhujiemian() {

cout<

cout<<\数据结构实验二\

cout<<\ cout<<\队列初始化\ cout<<\出队列\ cout<<\入队列\ cout<<\队列长度\

cout<<\在队列中查找元素\ cout<<\遍历队列\ cout<<\其他键退出\

cout<<\l;

cout<<\请选择要进行操作的序号(1--6):\}

int main() {

linkqueue Q;

第18页

软件114班李大宝 201100834416

inta,b,c; zhujiemian(); cin>>a; while(a!=1) {

cout<<\输入错误,必须先初始化,请重新输入:\ cin>>a; }

cout<

switch(a) {

case 1:

if(init(Q)==1)

cout<<\初始化成功!\ else

cout<<\初始化失败!\ break; case 2:

if(length(Q)==0) {

cout<<\队列为空无法出队!\ break; }

if(dequeue(Q)==1)

cout<<\删除成功!\ else

cout<<\删除失败!\ break; case 3:

cout<<\输入你要入队元素\ cin>>c;

if(enqueue(Q,c) ==1)

cout<<\入队成功!\ else

cout<<\入队失败!\ break; case 4:

b=length(Q);

cout<<\队列的长度为:\ break; case 5:

cout<<\您要查找的元素:\ cin>>b;

if(find(Q,b)==1)

cout<<\恭喜您,队列中有您要找的元素\ else

cout<<\不好意思,队列中没有您要找的元素\ break; case 6:

第19页

软件114班李大宝 201100834416

}

if(length(Q)==0) {

cout<<\队列为空!\ break; }

show(Q); break; default: break; }

system(\ system(\ zhujiemian(); cin>>a; cout<0&&a<=6); return 0;

题目三、Rails

Description

There is a famous railway station in PopPush City. Country there is incredibly hilly. The station was built in last century. Unfortunately, funds were extremely limited that time. It was possible to establish only a surface track. Moreover, it turned out that the station could be only a dead-end one (see picture) and due to lack of available space it could have only one track.

The local tradition is that every train arriving from the direction A continues in the direction B with coaches reorganized in some way. Assume that the train arriving from the direction A has N <= 1000 coaches numbered in increasing order 1, 2, ..., N. The chief for train reorganizations must know whether it is possible to marshal coaches continuing in the direction B so that their order will be a1, a2, ..., aN. Help him and write a program that decides whether it is possible to get the required order of coaches. You can assume that single coaches can be disconnected from the train before they enter the station and that they can move themselves until they are on the track in the direction B. You can also suppose that at any time there can be located as many coaches as necessary in the station. But once a coach has entered the station it cannot return to the track in the direction A and also once it has left the station in the direction B it cannot return back to the

第20页

软件114班李大宝 201100834416

station. Input

The input consists of blocks of lines. Each block except the last describes one train and possibly more requirements for its reorganization. In the first line of the block there is the integer N described above. In each of the next lines of the block there is a permutation of 1, 2, ..., N. The last line of the block contains just 0. The last block consists of just one line containing 0. Output

The output contains the lines corresponding to the lines with permutations in the input. A line of the output contains Yes if it is possible to marshal the coaches in the order required on the corresponding line of the input. Otherwise it contains No. In addition, there is one empty line after the lines corresponding to one block of the input. There is no line in the output corresponding to the last ``null'' block of the input. Sample Input 5

1 2 3 4 5 5 4 1 2 3 0 6

6 5 4 3 2 1 0 0

Sample Output Yes No Yes

程序清单:(STL标准模板库) 一、

#include #include #include

using namespace std; int a[1001],n,i,j; int fan() { stacks; //火车是按(1--n)的顺序进栈 inti,j;

for(i=0,j=1;i

if(s.empty()||s.top()!=a[i])//栈空或栈顶元素不与a[i]相同时进站 {

if(j==(n+1)) //不能正常出站条件 return 0; //不能正常出站返回0

第21页

软件114班李大宝 201100834416

s.push(j++); //将j压入栈中 }

else //栈顶元素与a[i]相同时进站 {

s.pop(); //弹出栈顶元素

i++; //i++,a的下个元素继续进行 } } return 1; } /*

fan()解释:

1--n和a[n]的每个元素进行比较。 用j=1,j++表示1—n的每个元素

用a[i](0<=i

如果栈顶元素与a[i]不相同,让j进栈,然后j++。 如果栈顶元素与a[i]相同,弹出栈顶元素,然后i++。

结束条件:1、j=(n+1)时表示不能按给出的顺序出站,则返回0 2、循环结束返回1 */

int main() {

while(scanf(\有多少辆火车,以0结束。 {

while(scanf(\ //输入出站次序,以0结束 { for(i=1;i

scanf(\ //把出站次序放在数组a中。 if(fan())

printf(\ //可以出站输出Yes else

printf(\ //不可以正常出站输出No } } return 0; }

运行结果:

第22页

软件114班李大宝 201100834416

二、

#include #include #include

using namespace std; int a[1001],n,i,j,k; int fan() { stacks; inti,j=0,k;

for(i=1;i<=n;i++) {

if(a[j]==i) //当a[j]与i相同时 {

j++; //进行下一个a中的元素 while(!s.empty())//栈不空时 {

k=s.top(); //得到栈顶元素 s.pop(); //弹出栈顶元素

if(k==a[j]) //栈顶元素与a[j]相同,继续进行下一个 j++;

else //栈顶元素与a[j]不同时 {

s.push(k); //把k再压入栈中

break; //if语句结束。

第23页

软件114班李大宝 201100834416

} } }

else //当a[j]与i不相同时把i压入栈中 s.push(i); }

if(s.empty()) //栈空返回1 return 1;

else //栈不空返回0 return 0; }

int main() {

while(scanf(\ {

while(scanf(\ { for(i=1;i

printf(\else

printf(\ } } return 0; } /*

主要解释一下fan()

1--n和a[n]的每个元素进行比较。 用i=1,i++表示1—n的每个元素

用a[j](0<=j

当a[j]与i相同时,j++,让栈顶元素继续与a[j]比较,直到a[j]与栈顶元素不同 当a[j]与i相同时将i压入栈中。

结束条件:1、最后栈空,返回1(可以按所给的顺序出站) 2、栈不空,返回0(不可以按所给的顺序出站) */

题目四、Sliding Window

Description

An array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves rightwards by one position. Following is an example:

The array is [1 3 -1 -3 5 3 6 7], and k is 3.

第24页

软件114班李大宝 201100834416

Minimum value Maximum value

[1 3 -1] -3 5 3 6 7 -1 3

1 [3 -1 -3] 5 3 6 7 1 3 [-1 -3 5] 3 6 7 1 3 -1 [-3 5 3] 6 7 1 3 -1 -3 [5 3 6] 7 1 3 -1 -3 5 [3 6 7]

-3 -3 -3 3 3

3 5 5 6 7

Window position

Your task is to determine the maximum and minimum values in the sliding window at each position. Input

The input consists of two lines. The first line contains two integers n and k which are the lengths of the array and the sliding window. There are n integers in the second line. Output

There are two lines in the output. The first line gives the minimum values in the window at each position, from left to right, respectively. The second line gives the maximum values. Sample Input 8 3

1 3 -1 -3 5 3 6 7 Sample Output -1 -3 -3 -3 3 3 3 3 5 5 6 7

程序清单:

#include #include

#include //*min_element(),*max_element()所包含头文件 using namespace std; int main() {

intn,k,i,a[1001],min[1000],max[1000];

//a[1001]存放输入数据,min[1000]存放最小值,max[1000]存放最大值 while(scanf(\输入到文件结尾结束。 {

for(i=0;i

scanf(\ //也可以写出scanf(\for(i=0;i<=n-k;i++) {

min[i]=*min_element(a+i,a+i+k);

//求一个范围段的最小值,保存在数组min[1000]中

max[i]=*max_element(a+i,a+i+k);

//求一个范围段的最大值,保存在数组max[1000]中

}

第25页

软件114班李大宝 201100834416

for(i=0;i<=n-k;i++) //输出最小值。 printf(\printf(\

for(i=0;i<=n-k;i++) //输出最大值。 printf(\printf(\ } return 0; }

运行结果:

第26页

软件114班李大宝 201100834416

for(i=0;i<=n-k;i++) //输出最小值。 printf(\printf(\

for(i=0;i<=n-k;i++) //输出最大值。 printf(\printf(\ } return 0; }

运行结果:

第26页

本文来源:https://www.bwwdw.com/article/151o.html

Top