问大家几个关于c的程序,给出原代码才结帖哦。(帮定也给分)

时间:2021-10-02 21:23:39
注意以下均在TC2.0下完成。给出源代码就给分!!!

问题1:设有N个人围坐一圈并按顺时针方向1--n编号,从第S个人开始进行1--m报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,每项10人一组,给出这n个人的顺序表。
提示:
1、将第1--m个人的序号存入一维数组p中;
2、若第j个人报数出圈,则将p[i]置于数组的倒数第j个位置上,而原来第i+1个至倒数第i个元素依次向前移动了一个位置;
3、重复第(2)步,直到圈子中只剩p[1]为止。

问题2:设民航售票处的计算机系统可以为客户提供下列各项服务。
(1)查询航组:根据旅客提出的终点站名输出下列信息:航班号,飞机号,星期几飞行,最后一天航班的日期和余票额;
(2)承办定票业务:根据客户提出的要求(航班号、定票数额),查询该航班票额情况,若尚有余票,则为客户办理定票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可预约登记排队等候;
(3)承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人预约登记,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理定票手续,否则依次询问其他排队预约客户。
基本要求:
    编制便于人机对话的程序,实现上述服务项目。
提示:
    每条航线应包含的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票额、已定票的客户名单(包括姓名、定票额、定座号)和预约登记的客户名单(包括姓名、所需票额)。最后两项可以是一个线形表和一个队列。为查找方便,已定票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录、包含上述8个域,其中乘员名单域为指向乘员名单链表的头指针,预约登记的客户名单域为分别指向队头和队尾的指针。

20 个解决方案

#1


我自己先顶一下!分不够在加都可以~~~但是急!!在这里先谢谢了

#2


呵呵!!太懒了吧,大懒鬼啊

#3


up!!
楼主最好先自己写一下,不会的再来问比较好!

#4


看来我只能帮顶了

#5


作业还是自己做的好。

#6


94  
这种题目还说自己做吧 对自己有好处啊

#7


#include<stdio.h>
#define M 10000
void main()
{
 
 int N,S;
 do
 {
  printf("\n输入N和S,注意S不要大于N,N不要超过最多人数\n");
  scanf("%d%d", &N, &S);
 }while(N<S || N>M);
 
 int n[M],i=0,k=0;
 for(int a=1; k!=N-1; a++,i++)
 {
     for(;n[i]==S;i++);
     if(i==N) i=0;
             for(;n[i]==S;i++); 
     if(a==S)
     {
             n[i]=S;
             k++;
             printf("%d  %d\n", i, k);
             a=0;
      }
 }
 printf("最后一个人的号码是:%d \n", i);;
}

#8


学习ing

#9


不是我懒,我是帮一个MM做他们的试验,我的C基本等于0,而且N年没用TC了。还请个位帮帮忙啊!

#10


注意:是在TC2.0下编译,也就是说是.C文件,不是.CPP文件!

#11


如果mm漂亮的话,介绍给我吧,我教mm比较心得

#12


我说真的!不是我懒,是我真的不会,所以还请大家帮帮我的忙!谢谢了
请楼上的能了解,世界上漂亮的MM是不可能不被占据的!

#13


第一个约瑟夫环的问题,用google搜一下用一堆源码!

#14


第二题的源码:
http://home.ncust.edu.cn/~titilima/download/flight.zip

#15


结贴吧!

楼主

^_^

#16


问一下,你的第二个是不是FIGHT.C,为什么编译后有10个错误啊??

#17


第一个怎么实现从第S个人开始报数啊?
我的程序是
#include <stdio.h>
#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p,a=0,s=0;
printf("please input the total of numbers:");
scanf("%d",&n);
printf("please input the begin of unmber:");
scanf("%d",&s);
printf("please input m:");
scanf("%d",&a);
p=num;

for(i=s;i<n;i++)

*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)
{
if(*(p+i)!=0) k++;
if(k==a)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
while(*p==0) p++;

printf("%d is left\n",*p);
}

#18


这么简单的问题,只要你自己有思想,看一下C语法不就得了,还是你自己写吧,哈哈

#19


找本参考书看看 这年头 哎~!

#20


不写,还觉得自己很了不起的,请不要说话!没有人当你不会打字!

#1


我自己先顶一下!分不够在加都可以~~~但是急!!在这里先谢谢了

#2


呵呵!!太懒了吧,大懒鬼啊

#3


up!!
楼主最好先自己写一下,不会的再来问比较好!

#4


看来我只能帮顶了

#5


作业还是自己做的好。

#6


94  
这种题目还说自己做吧 对自己有好处啊

#7


#include<stdio.h>
#define M 10000
void main()
{
 
 int N,S;
 do
 {
  printf("\n输入N和S,注意S不要大于N,N不要超过最多人数\n");
  scanf("%d%d", &N, &S);
 }while(N<S || N>M);
 
 int n[M],i=0,k=0;
 for(int a=1; k!=N-1; a++,i++)
 {
     for(;n[i]==S;i++);
     if(i==N) i=0;
             for(;n[i]==S;i++); 
     if(a==S)
     {
             n[i]=S;
             k++;
             printf("%d  %d\n", i, k);
             a=0;
      }
 }
 printf("最后一个人的号码是:%d \n", i);;
}

#8


学习ing

#9


不是我懒,我是帮一个MM做他们的试验,我的C基本等于0,而且N年没用TC了。还请个位帮帮忙啊!

#10


注意:是在TC2.0下编译,也就是说是.C文件,不是.CPP文件!

#11


如果mm漂亮的话,介绍给我吧,我教mm比较心得

#12


我说真的!不是我懒,是我真的不会,所以还请大家帮帮我的忙!谢谢了
请楼上的能了解,世界上漂亮的MM是不可能不被占据的!

#13


第一个约瑟夫环的问题,用google搜一下用一堆源码!

#14


第二题的源码:
http://home.ncust.edu.cn/~titilima/download/flight.zip

#15


结贴吧!

楼主

^_^

#16


问一下,你的第二个是不是FIGHT.C,为什么编译后有10个错误啊??

#17


第一个怎么实现从第S个人开始报数啊?
我的程序是
#include <stdio.h>
#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p,a=0,s=0;
printf("please input the total of numbers:");
scanf("%d",&n);
printf("please input the begin of unmber:");
scanf("%d",&s);
printf("please input m:");
scanf("%d",&a);
p=num;

for(i=s;i<n;i++)

*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)
{
if(*(p+i)!=0) k++;
if(k==a)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
while(*p==0) p++;

printf("%d is left\n",*p);
}

#18


这么简单的问题,只要你自己有思想,看一下C语法不就得了,还是你自己写吧,哈哈

#19


找本参考书看看 这年头 哎~!

#20


不写,还觉得自己很了不起的,请不要说话!没有人当你不会打字!

#21