C语言模拟排队编程,急求完整答案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言模拟排队编程,急求完整答案相关的知识,希望对你有一定的参考价值。
参考技术A 这个题有够无聊的,不过这明显是个基础教学用PPT,是帮助理解的案例,不是用来考人的,
那这些模拟数字应该都是直接写入的吧:
//state1
int q[10];
//state2
q[0] = 9;
q[1] = 5;
q[2] = 2;
q[3] = 7;
//state3
q[4] = 6;
q[5] = 4;
//state4
for(int i = 0;i < 4;i++)q[i] = q[i+2];
q[4] = 0;q[5] = 0;
//state5
for(int i = 4;i >= 3;i--)q[i] = q[i-1];
q[4] = 3;
//state6
int k;
for(int i = 0;i <= 4;i++)if(q[i] == 3)k = i;break;
//state7
for(int i = k;i < 4;i++)q[i] = q[i+1];
q[4] = 0;
//state8
for(int i = 0;i < 4;i++)cout<<q[i]; 参考技术B #include "stdafx.h"
int main(int argc, char* argv[])
int queue[10]=9,5,2,7,0,0,0,0,0,0;
int n = 4; //数组有效数字长度
printf("状态1:队列可容纳总人数为10\n");
//========================================
printf("状态2:"); //状态2:输出当前队列
for(int i=0;i<n;i++) //输出队列
printf("%d,",queue[i]);
printf("\n");
//========================================
queue[n++]=6; //状态3:后面来2个人
queue[n++]=4;
printf("状态3:");
for(i=0;i<n;i++) //输出队列
printf("%d,",queue[i]);
printf("\n");
//========================================
for(i=0;i<n-2;i++) //状态4:前面走了2个人
//所有元素向前移
queue[i]=queue[i+2];
queue[--n]=0; //清空后面两个元素
queue[--n]=0;
printf("状态4:");
for(i=0;i<n;i++) //输出队列
printf("%d,",queue[i]);
printf("\n");
//========================================
int pos7=-1; //3朋友7的位置
for(i=0;i<n;i++) //查找3朋友7的位置
if(queue[i]==7)
pos7=i;
break;
if(pos7>=0 && pos7 < 9) //7必须在队列里,且不能是最后一个元素,不然插不了队
for(i=n-1;i>=pos7-1;i--)//7以及7后面的元素向后移
queue[i+1]=queue[i];
queue[pos7]=3; //3插队
n++; //队列变长了
printf("状态5:");
for(i=0;i<n;i++) //输出队列
printf("%d,",queue[i]);
printf("\n");
//========================================
printf("状态6:没有变化,3正在被批评教育中...\n");
//========================================
int pos3=-1; //3的位置
for(i=0;i<n;i++) //查找3的位置
if(queue[i]==3)
pos3=i;
break;
for(i=pos3;i<n;i++) //状态7:3后面的元素向前移
queue[i]=queue[i+1];
queue[--n]=0; //清除最后一个多余的元素
printf("状态7:");
for(i=0;i<n;i++) //输出队列
printf("%d,",queue[i]);
printf("\n");
//========================================
for(i=0;i<n;i++) //状态8:大家都去办公室了,队列里面没人了
queue[i]=0;
n=0;
printf("状态8:大家都去办公室了,队列里面没人了\n");
//========================================
getchar(); //程序暂停,按任意键退出
return 0;
急求一道c语言编程的答案!!时间急迫!!快快!!
下面10组题目中任选其一完成。【难度系数:10】
1. 文件压缩及解压缩程序。
题目:设计一种压缩格式的压缩及解压缩程序。
提示:调用已有的压缩及解压缩函数库实现。
参考:下面格式选择一种实现
CAB格式:libmspack,http://www.kyz.uklinux.net/libmspack/
ZIP格式:http://www.zlib.net/,ZLIB Compression Library (PKZIP/GZIP Compression)
UNRAR:http://www.rarlab.com/rar_add.htm
2. 数据加密程序
题目:编写一种加密算法的程序
提示:调用已有的加密函数库或利用算法原理实现。http://www.cryptopp.com/
参考:下面算法选择一种实现
已知的加密算法有许多种,例如:RC6, MARS, Rijndael, Twofish, Serpent, IDEA, DES, Triple DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, CBC padded, CBC ciphertext stealing (CTS), CFB, OFB, counter mode, ARC4, SEAL, WAKE, Sapphire, BlumBlumShub, RSA, DSA, ElGamal, Nyberg-Rueppel (NR), BlumGoldwasser, Rabin, Rabin-Williams (RW), LUC, LUCELG, Elliptic Curve Cryptosystems, PKCS#1 v2.0, OAEP, PSSR, IEEE P1363 EMSA2, Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, SHA-1, MD2, MD5, HAVAL, RIPEMD-160, Tiger, MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC, Luby-Rackoff, MDC, ANSI X9.17 appendix C, PGP's RandPool
3. 位校验程序
题目:编写数据通信中位校验程序
参考:下面方法选择一种实现
位校验方法有:CRC16、CRC32、CRC8等
4. 常用算法演示程序
题目:编写常用算法的演示程序
参考:下面算法选择一种实现
矩阵旋转算法
Prim算法
拷贝链表的O(n)算法
随机算法
大数阶乘源码
格雷码算法
算术表达式的计算
寻找链表中间节点算法
模式匹配的KMP算法
最小堆/哈希表/二叉树/平衡二叉树/红黑树
最小生成树
Kruskal算法:(贪心)
最短路径Dijkstra 算法
5. 排序算法程序
题目:编写七种排序算法的演示程序
快速排序;
插入排序;
选择排序;
冒泡排序;
堆排序;
归并排序;
基数排序;
6. 高精度计算
题目:高精度计算是指位数较长(超出C语言数据类型范围)的计算问题。
参考:下面要求选择一种实现
高精度加法
高精度减法
高精度乘以低精度
高精度乘以高精度
高精度除以低精度
高精度除以高精度
7. 查找算法
题目:编写查找算法的演示程序
参考:下面算法选择一种实现
顺序查找
折半查找
树形查找
8. 数据结构相关算法
题目:编写链表处理程序
参考:
链表的定位函数
单链表的插入操作
单链表的删除操作
双链表的插入操作(插入新结点q)
双链表的删除操作
9. 用链表实现有序线性表
题目:用链表实现有序线性表
参考:实现的功能
(1)有序线性表的元素是按值从小到大的顺序排列的。本题要求用带表头结点的单链表实现有序线性表。
(2)用户界面要求设计为菜单方式。程序运行后,显示如下功能菜单:
1. 置空表
2. 插入
3. 删除
4. 查找
5. 输出
0. 退出
10. ACM/ICPC试题
题目:编写http://acm.uva.es或http://icpc.baylor.edu/icpc/上的ACM问题集程序
参考:试题自选,要求英文试题内容,全英文程序摘要、基本结构及算法讲解。
#include <cstdlib>
#include <ctime>
using namespace std;
const int MAX_SIZE=100;
void partition1(int A[],int n,int first,int last,int &mid)//划分
int i=first,j=last,x=A[i];
while(i<j)
while(i<j&&A[j]%3!=0)
j--;
if(i<j)
A[i]=A[j];i++;
while(i<j&&A[i]%3==0)
i++;
if(i<j)
A[j]=A[i];
j--;
A[i]=x;
mid=i;
void partition2(int A[],int n,int first,int last,int &mid)//划分
int i=first,j=last,x=A[i];
while(i<j)
while(i<j&&A[j]%3!=1)
j--;
if(i<j)
A[i]=A[j];i++;
while(i<j&&A[i]%3==1)
i++;
if(i<j)
A[j]=A[i];
j--;
A[i]=x;
mid=i;
void QuickSort(int A[],int n,int first,int last)//快速排序
int middle;
if(first<last)
partition1(A,n,first,last,middle);
partition2(A,n,middle+1,last,middle);
void display(int A[],int n)
int i=0;
for(i=0;i<n;i++)
cout<<A[i]<<" ";
cout<<endl;
int main()
int array[MAX_SIZE],i=0,n=1;
srand(time(0));
cout<<"提示:本程序是将一个整型数组调整为这样的数组:所有3的倍数在左边,所有除以 "<<endl;
cout<<"3余1的数放在中间,而所有除以3余2的数放在最右边.要求算法的时间尽可能少. "<<endl;
cout<<endl<<"数组中元素的值在1~n之间变化,请输入n的值:";
cin>>n;
for(i=0;i<MAX_SIZE;i++) //插入随机数
array[i]=rand()%n;
cout<<"排序前:"<<endl;
display(array,MAX_SIZE);
QuickSort(array,MAX_SIZE,0,MAX_SIZE-1);
cout<<"排序后:"<<endl;
display(array,MAX_SIZE);
system("PAUSE");
return 0;
快速排序 参考技术A 4. 常用算法演示程序
题目:编写常用算法的演示程序
参考:下面算法选择一种实现
矩阵旋转算法
Prim算法
拷贝链表的O(n)算法
随机算法
大数阶乘源码
格雷码算法
算术表达式的计算
寻找链表中间节点算法
模式匹配的KMP算法
最小堆/哈希表/二叉树/平衡二叉树/红黑树
最小生成树
Kruskal算法:(贪心)
最短路径Dijkstra 算法本回答被提问者采纳 参考技术B 问问题的该不会是。。。。xgd的吧。。。
你够可以的~~~不想自己做还搜难度系数最大的。。。
自己做个数学型的就行了呗。。那些里有特简单的。 参考技术C 第八个是最简单的,看看书呗~唉数据结构重修- -
以上是关于C语言模拟排队编程,急求完整答案的主要内容,如果未能解决你的问题,请参考以下文章