北理C语言作业及答案3(8)

2019-03-16 14:36

50. return 0; 51. } 52. 53. /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include #include typedef struct sdata{ int num; struct sdata *next;} SNODE;void movenode( SNODE *, int );void setlink( SNODE * head, int n ){ SNODE *p;while ( n > 0 ){ p = ( SNODE * ) malloc( sizeof( SNODE ) );p->num = n;p->next = head->next;head->next = p;n --;}} 测试输入 期待的输出 时间限制内存限制额外进程 无限制 64M 0 以文本方式显示 以文本方式显示 测试用例 1 1. 7 5? 1. 5,1,2,3,4,6,7,? 以文本方式显示 以文本方式显示 测试用例 2 1. 1 1? 1. 1,? 以文本方式显示 以文本方式显示 测试用例 3 1. 3 3? 1. 3,1,2,? 以文本方式显示 以文本方式显示 测试用例 4 1. 10 0? 1. 1,2,3,4,5,6,7,8,9,10,? 以文本方式显示 以文本方式显示 测试用例 5 1. 10 20? 1. 1,2,3,4,5,6,7,8,9,10,? 以文本方式显示 以文本方式显示 测试用例 6 1. 8 7? 1. 7,1,2,3,4,5,6,8,? 无限制 64M 0 无限制 64M 0 无限制 64M 0 无限制 64M 0 无限制 64M 0 以文本方式显示 以文本方式显示 测试用例 7 1. 8 2? 1. 2,1,3,4,5,6,7,8,? void movenode( SNODE *head, int m ) {

SNODE *q; SNODE *u; SNODE *v; SNODE *t; int i;

int count=0; t=head->next; while(t!=NULL) {

count++; t=t->next; }

if(count

q=(SNODE*)malloc(sizeof(SNODE)); q->next=head->next; q->num=m; head->next=q;

for(i=0,u=head;inext!=NULL;++i) u=u->next;

if(m>0&&u->next!=NULL) {

v=u->next;

u->next=v->next; free(v); } } }

无限制 64M 0 53 猜数字看人品

成绩: 10 / 折扣: 0.8

描述

Tom 和 Jerry 做猜数字的游戏,Tom 想一个数字然后让 Jerry 去猜,数字的范围在 1 到 10 之间。对于 Jerry 每讲的一个数,Tom 都要讲这个数是 too high 或者 too low 或者

right on,直到 right on 结束。为了防止 Tom 作弊,Jerry 把每一次的对话记录下来,现在让你去判断 Tom 有没有作弊。

输入

游戏可能做很多次,直到 Jerry 猜 0 的时候游戏结束,每一次猜测由一个正整数和一行回答组成。

输出

对每一次游戏如果 Tom 的回答有自相矛盾的地方,就输出 Tom is dishonest,否则输出 Tom may be honest。

时间限制内存限制额外进程 无限制 64M 0 测试输入 期待的输出 以文本方式显示 1. 5? 2. too low? 3. 7? 4. too high? 5. 6? 6. right on? 7. 10? 8. too high? 9. 3? 10. too low? 11. 4? 12. too high? 13. 2? 14. right on? 15. 0? 以文本方式显示 1. Tom may be honest? 2. Tom is dishonest? 测试用例 1 #include #include struct data{ int num; char s[10];

struct data *next; };

int judge () {

struct data *head,*p; int truth;

head=(struct data *)malloc (sizeof (struct data)); head->next=NULL; head->num=-1; p=head; while (1) {

p->next=(struct data *)malloc (sizeof (struct data)); p=p->next;

scanf (\if (p->num==0) return 0; scanf (\gets(p->s); if (p->s[0]=='r') {

truth=p->num; p->next=NULL; break; } }

p=head->next;

while (p->next!=NULL) {

if (p->num>=truth&&p->s[4]!='h'&&p->next!=NULL) return 1; else

if (p->num<=truth&&p->s[4]!='l'&&p->next!=NULL) return 1; p=p->next; }

return 2; }

int main() {

while (1) {

switch (judge()) {

case 0:goto end;

case 1:printf(\case 2:printf (\}

} end:; }

H22 恭喜发财 利是窦来(选做)

成绩: 5 / 折扣: 0.8

在中国,过春节时人们有给孩子压岁钱(粤语称为利是)的习俗。

最早的压岁钱出现于汉代,又叫压胜钱,并不在市面上流通,而是铸成钱币形式的玩赏物,有避邪的功能。钱币正面一般铸有“万岁千秋”、“去殃除凶”等吉祥话和龙凤、龟蛇、双鱼等吉祥图案。

据说嘉兴府有一户姓管的人家,夫妻老年得子,十分珍爱。在年三十晚上,为防止“祟”来侵扰 一直逗孩子玩,小孩用红纸包了八枚铜钱,包了又拆,拆了又包,睡下以后,包着的八枚铜钱就放在枕边。半夜里,一阵阴风吹过,黑矮的小人正要用他的白手摸孩 子的头,突然孩子枕边迸出一道金光,祟尖叫着逃跑了。

于是这件事传扬开来,大家纷纷效仿,在大年夜用红纸包上钱给孩子,祟就不敢再来侵扰了。因而人们把这种钱叫“压祟钱”,“祟”与“岁”发音相同,日久天长,就被称为 “压岁钱”了。

现在有 N 个人,他们都有小孩,春节来了,他们要发压岁钱给朋友的小孩,而他们自己的小孩也会收到压岁钱。为了简单,他们在发压岁钱的时候,使用以下的计算方法,譬 如某甲有 100 块,它要给另外三个人的小孩发压岁钱,则每个小孩会分到 100/3 = 33 块,剩余的 1 块就不发了。

给你这 N 个人的信息,以及他们把压岁钱发给了谁的小孩,请你计算他们每个人的小孩收到的压岁钱和他们发出去的压岁钱的差额是多少。

输入

第 1 行:

一个整数 N(2 <= N <= 10)

第 2..N+1 行: 每行是一个人名,每个名字不超过 14 个字符 第 N+2..结束: N 组按照以下规则组织的数据:

组中的第一行为送出压岁钱的人名。

第二行包括两个数字,第一个是该人有多少钱(0~2000),第二个是它要把钱发给几个人的小孩,用 NGi 表示(0 ≤ NGi ≤ N-1).

如果 NGi 为非零,则下面的 NGi 行会列出接受压岁钱的人的名字。


北理C语言作业及答案3(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(试行)火车采样机的操作规程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: