『求助』C++ 程序设计
题目:1、建立一个有n名学生数据的单链表,每个学生记录包括学号、姓名、成绩。要求:
(1) 按学号递增的次序输出整个学生单链表。
(2) 用二分法查找成绩为某个值的学生记录。
(3) 在某个学生记录之前插入一个新记录。
(4) 删除姓名为“汪玲”的学生记录。
2、复数的表示和运算
要求:输入和显示复数,并能进行复数的加、减、乘运算。
3、Josephus问题(约瑟夫环问题)
[问题描述]设有n个人围坐一圈,现从某个人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人又出列,如此下去,直到所有人都出列为止。试设计确定他们的出列次序序列的程序。
该问题是古罗马著名史学家Josephus提出的问题演变而来,故常称为Josephus问题。
提示:可用环形数组来实现。
4、排序问题
题目要求:输入n个学生的考试成绩表,每条信息由姓名与分数组成。请按分数从高到低来排序。
请写出源代码,最好用较为容易理解的方法解决上述问题。
因为哦的C++刚刚开始起步!
谢谢
回复: 『求助』C++ 程序设计
这几道题都属于数据结构的问题。推荐两本书《C语言与习题解答》和《数据结构(C语言篇)习题与解答》清华大学出版社出版。学C语言关键在于流程图,过程清楚了,就好编程了。
第三题的答案在前一本书的第227页。源代码如下:
#include <stdio.h>
main()
{
struct child
{
int next;
int num;
}link;
int i=0;
int k=0;
int n=0;
int w=0;
int s=0;
int count=0;
printf("小孩个数n=");
scanf("%d",&n);
printf("开始报数小孩的编号w=");
scanf("%d",&w);
printf("报到第几个出列s=");
scanf("%d",&s);
for(i=1;i<=n;++i)
{
if(i==n)
{
link.next=1;
}
else
{
link.next=i+1;
}
link.num=i;
}
printf("结果:\n");
i=1;
if(w==i)
{
k=n;
}
else
{
k=w-1;
}
count=0;
while(count!=n)
{
i=0;
while(i!=s)
{
k=link.next;
if(link.num!=0)
{
++i;
}
}
printf("%8d",link.num);
link.num=0;
++count;
if(count%10==0)
{
printf("\n");
}
}
printf("\n");
}
回复: 『求助』C++ 程序设计
这个用c++编译?不是c啊~呵呵,看看数据结构的书吧~否则是绝对编不出的!!回复: 『求助』C++ 程序设计
Josephus问题网上肯定有答案其他的如果数据结构理解的话也不难,我最近没时间
如果是你的作业的话我劝你真的自己做
回复: 『求助』C++ 程序设计
= =谢谢大家
是思考题,呵呵!
哦回再看看的
页:
[1]