㈠ c语言 结构体问题 问题长 高分 急
我仅给你more challenging question的实现
因为没做错误处理 你输入的时候要输入正确的数据
// tmpdsf.cpp : コンソール アプリケーションのエントリ ポイントを定义します。
//
#include "stdafx.h"
typedef struct item{
int id;
int value;
int weight;
}Item;
int takenvalue;
int takenweight;
Item takenTMP[11];
//int num;
int value = 0;
int weight = 0;
int total = 0;
int totalend = 0;
void printItems(Item items[], int numItems)
{
int i = 0;
for(i = 0; i < numItems; i ++)
{
if(items[i].id == 0)break;
printf("%d, %d,%d\n", items[i].id, items[i].value , items[i].weight);
}
}
void search(Item items[ ],Item taken[ ], int numItems, int maxWeight,int first)
{
int i, j;
for(i = first; i<= numItems; i++)
{
if((items[i].weight + weight) <= maxWeight)
{
takenTMP[total].id = items[i].id;
takenTMP[total].value = items[i].value;
takenTMP[total].weight = items[i].weight;
weight += items[i].weight;
value += items[i].value;
total++;
if(value > takenvalue)
{
takenweight = 0;
totalend = 0;
for(j = 0; j < total; j++)
{
taken[j].id = takenTMP[j].id;
taken[j].value = takenTMP[j].value;
taken[j].weight = takenTMP[j].weight;
takenweight += taken[j].weight;
totalend ++;
}
takenvalue = value ;
first = i+1;
taken[total+1].id = 0;
taken[total+1].value = 0;
taken[total+1].weight = 0;
search(items,taken, numItems, maxWeight, first);
}
}
}
}
int maximize(Item items[ ], int numItems, int maxWeight, Item taken[ ])
{
int first = 0;
int i;
takenvalue = 0;
for(i = 0; i<= numItems; i++)
{
total = 0;
weight = 0;
value = 0;
search(items,taken, numItems, maxWeight, i);
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
Item items[10], taken[11];
int numItems = 1;
int i = 0;
int maxWeight =0;
int quit;
for(i= 0; i< 12; i ++)
{
items[i].id = 0;
items[i].value = 0;
items[i].weight = 0;
takenTMP[i].id = 0;
takenTMP[i].value = 0;
takenTMP[i].weight = 0;
}
printf("please Enter items:\n");
while(1)
{
scanf("%d,%d,%d\n",&items[numItems - 1].id, &items[numItems - 1].value, &items[numItems - 1].weight);
if(items[numItems - 1].id == 0)break;
numItems ++;
}
printf("Enter maximum weight, W:");
scanf("%d,",&maxWeight);
maximize(items, numItems, maxWeight,taken);
printItems(taken, totalend);
printf("Items taken:");
for(i=0; i < totalend; i++)
printf("<%d, %d,%d>", taken[i].id, taken[i].value , taken[i].weight);
printf("\n");
printf("Total value: %d\n", takenvalue );
printf("Total weight: %d\n", takenweight );
scanf("%d",&quit);
return 0;
}
㈡ 用C语言来解答这道题
#include <stdio.h>
main()
{printf("啥鸡把玩意儿!");
return 0;
}
㈢ 以下两种描述分别对应哪两种对分类算法的评价标准
一,K-Means聚类算法原理 k-means 算法接受参数 k ;然后将事先输入的n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对 象”(引力中心)来进行计算的。 K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。 假设要把样本集分为c个类别,算法描述如下: (1)适当选择c个类的初始中心; (2)在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离最短的中心所在的类; (3)利用均值等方法更新该类的中心值; (4)对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。 该算法的最大优势在于简洁和快速。算法的关键在于初始中心的选择和距离公式。
㈣ get 的用法
及物动词 vt.
1.得到, 收到
I've got your telegram.
我已经收到了你的电报。
They got notice from the police.
他们从警察那里得到通知。
Can you get a ticket for me?
你能给我搞张票吗?
I'll get a better position for him.
我要为他谋个更好的职位。
2.具有
3.使得
Please go and get him.
请去把他叫来。
We'll get you there somehow.
我们将设法把你送到那里。
You must get them to come over here.
你得设法让他们来这儿。
I can't get the car to start.
我无法使车发动起来。
I'll get the car going.
我要让这辆车发动起来。
She got her watch robbed of.
她的手表遭抢劫了。
How did the boy get himself dirty?
这孩子怎么搞得这么脏?
4.(去)拿来
I'm going to get my hat from the other room.
我要到另一个房间去拿我的帽子。
5.理解, 听到, 学得
Did you get what I mean?
你明白我的意思了吗?
6.感染上, 得(病)
I've got a bad cold.
我得了重感冒。
7.抓住, 击中, 杀死
The police got the thief.
警察抓住了小偷。
I got the minister on the ear with a potato.
我用薯仔打中了部长的耳朵。
8.受到(惩罚等)
9.获得;得到
10.(卖某物)挣得,获得
11.受到;遭到;被判(刑)
12.(考试)获得,达到
13. 与(某人)电话联系;与(某人)通电话
14.(使)达到,处于
15.开始(感觉到、认识到、成为);达到…地步(或程度)
16.使,让(某人或物做某事);说服(某人做某事)
17.使(某事)发生;使完成(某事)
18.有机会(做…);得到(做…的)机会
19.(使)到达,离开,沿…移动,艰难地移动
20. 使烦恼;使恼火
21.受到;收到;接到;领取,领受
22.搭上(车、船等);赶上(火车等)
23.计算出,得到
24.说服,劝说,劝导,促使(某人)做某事
We'll get him to leave.
我们会说服他离开。
25.被判(刑),受到(打击)
to get ten years for robbery
因抢劫被判处10年徒刑
及物动词 vt. & 不及物动词 vi.
1.到达, 来, 往
The visitors got here last night.
游客们是昨晚到达这里的。
After travelling all summer, I was glad to get home.
旅行了整个夏天之后, 我很高兴回到了家。
We won't get anywhere that way.
那样我们不可能有任何进展。
You'll get nowhere if you follow his instruction.
要是你按他的方法去做, 将会一事无成。
They tried to talk, but not knowing each other's language they didn't get far.
他们试图交谈, 但因彼此语言不通, 还是没谈出什么名堂。
不及物动词 vi.
1.开始, 逐渐
You'll get to like it in time.
你终究会喜欢它的。
He got to be rich.
他富了。
When you get to know him you'll find he is quite nice.
当你渐渐认识他时, 你会发现他很不错。
2.成为,变为,变得,变成;(开始…)起来,逐渐…起来
She is getting old.
她开始衰老了。
3.设法对付;想法做到,竟然成功地
4.获得利益(或财富),赚到钱
He spends all his time getting and spending.
他把他所有的时间都花在赚钱和消费上了。
系动词 link-v.
1.遭到
He got sick.
他病了。
He got killed in the war.
他在战争中阵亡了。
They got punished by the teacher.
他们受到了教师的惩罚。
You nearly got hit by that car!
你差点被车撞了。
2.成为, 变得
She was getting an old woman.
她在变成一个老太太。
In this way we get better results in teaching.
这样我们的教学效果就比较好了。
It's getting chilly.
天冷起来了。
Outside it was getting light.
外边天已经发白了。
The days are getting longer and longer.
白天越来越长。
The food's getting cold.
饭菜快凉了。
A white dress gets dirty very fast.
白色的衣服脏得快。
He is getting old.
他老了。
The old man seems to be getting younger and younger.
这位老人似乎越来越年轻了。
I am getting restless.
我开始不耐烦了。
He got angry with me because of my remark.
他由于我讲的话而生我的气。
The UN began to get more and more powerful.
联合国开始变得越来越强大了。
Now, now, boys and girls, don't get so excited!
好了, 好了, 同学们, 别这么激动!
㈤ pascal问题~警察抓a,b,c,d四名嫌疑犯,其中有一人是小.四人中三人说的是真话,一人说的是假话。编程找出他
1、可以分别假设A、B、C、D说的是假话,
然后检查是否存在矛盾,排除产生矛盾的假设,
剩下的就是答案。
2、这是二部图的问题,可以建立人与书之间关系二部图,
然后求完美匹配,如果存在完美匹配,
则该匹配就是满足条件的方案。
祝你好运!
㈥ free pascal编程题求解答(警察局抓了A 、B、C、D四名偷窃嫌疑犯,其中有一个是小偷。审问A说:“我……)
是C
如果A说的是真话 那么小偷是B 由此可推出D说的也是真话
如果B说的是真话 那么C说的也是真话
如果C说的是真话 那么B说的是假话 小偷不是D D说的就是真话
如果D说的是真话 那么B说的是假话 就不是D C说的是假话 那么是C偷的 所以A说的也是假话
㈦ 如何使用面相对象编程和c++实现:警察抓小偷的任务
class Role
{
public:
Role()
{
x = Random();
y = Random();
}
inline void Up()
{
y+=5;
if(y>MAX_HEIGHT) y=MAX_HEIGHT;
}
inline void Down()
{
y-=5;
if(y<MIN_HEIGHT) y=MIN_HEIGHT;
}
inline void Left()
{
x-=5;
if(x<MIN_WIDTH) y=MIN_WIDTH;
}
inline void Right()
{
x+=5;
if(x>MAX_WIDTH) y=MAX_WIDTH;
}
private:
int x;//横坐标
int y;//纵坐标
ICON icon //角色图标
};
class Player : public class Role
{
public:
Player()
{
SetICON();
}
};
class Thief : public class Role
{
public:
Player()
{
SetICON();
}
};
㈧ c语言程序设计——警察与小偷
#include <stdio.h>
#define true 1
#define false 0
#define I 9999 /* 无穷大 */
#define N 20 /* 城市顶点的数目 */
int cost[N][N] = {
{0,3,I,I,I,1,I,I,I,I,I,I,I,I,I,I,I,I,I,I},
{3,0,5,I,I,I,6,I,I,I,I,I,I,I,I,I,I,I,I,I},
{I,5,0,4,I,I,I,1,I,I,I,I,I,I,I,I,I,I,I,I},
{I,I,4,0,2,I,I,I,6,I,I,I,I,I,I,I,I,I,I,I},
{I,I,I,2,0,I,I,I,I,7,I,I,I,I,I,I,I,I,I,I},
{1,I,I,I,I,0,1,I,I,I,2,I,I,I,I,I,I,I,I,I},
{I,6,I,I,I,1,0,6,I,I,I,7,I,I,I,I,I,I,I,I},
{I,I,1,I,I,I,6,0,2,I,I,I,3,I,I,I,I,I,I,I},
{I,I,I,6,I,I,I,2,0,8,I,I,I,4,I,I,I,I,I,I},
{I,I,I,I,7,I,I,I,8,0,I,I,I,I,5,I,I,I,I,I},
{I,I,I,I,I,2,I,I,I,I,0,4,I,I,I,3,I,I,I,I},
{I,I,I,I,I,I,7,I,I,I,4,0,3,I,I,I,4,I,I,I},
{I,I,I,I,I,I,I,3,I,I,I,3,0,3,I,I,I,5,I,I},
{I,I,I,I,I,I,I,I,4,I,I,I,3,0,7,I,I,I,2,I},
{I,I,I,I,I,I,I,I,I,5,I,I,I,7,0,I,I,I,I,3},
{I,I,I,I,I,I,I,I,I,I,3,I,I,I,I,0,5,I,I,I},
{I,I,I,I,I,I,I,I,I,I,I,4,I,I,I,5,0,8,I,I},
{I,I,I,I,I,I,I,I,I,I,I,I,5,I,I,I,8,0,6,I},
{I,I,I,I,I,I,I,I,I,I,I,I,I,2,I,I,I,6,0,4},
{I,I,I,I,I,I,I,I,I,I,I,I,I,I,3,I,I,I,4,0}
};
int dist[N]; /* 存储当前最短路径长度 */
int v0 = 'A' - 65; /* 初始点是 A */
void main()
{
int final[N], i, v, w, min;
/* 初始化最短路径长度数据,所有数据都不是最终数据 */
for (v = 0; v < N; v++) {
final[v] = false;
dist[v] = cost[v0][v];
}
/* 首先选v0到v0的距离一定最短,最终数据 */
final[v0] = true;
/* 寻找另外 N-1 个结点 */
for (i = 0; i < N-1; i++) {
min = I; /* 初始最短长度无穷大 */
/* 寻找最短的边 */
for (w = 0; w < N; w++) {
if (!final[w] && dist[w] < min) {
min = dist[w];
v = w;
}
}
final[v] = true; /* 加入新边 */
for (w = 0; w < N; w++) { /* 更新 dist[] 数据 */
if (!final[w] && dist[v] + cost[v][w] < dist[w]) {
dist[w] = dist[v] + cost[v][w];
}
}
}
for (i = 0; i < N; i++) { /* 显示到监视器 */
printf("%c->%c: %2d\t", v0 + 65, i + 65, dist[i]);
}
}
这个应该够大了