Compare commits
66
Commits
542dd24e8d
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9dd5c8c83 | ||
|
|
e7aae27f87 | ||
|
|
c097a27e34 | ||
|
|
e6afc51134 | ||
|
|
db0782e5fc | ||
|
|
d7e3a5c9d9 | ||
|
|
3d52dadba1 | ||
|
|
3fbfc647b8 | ||
|
|
2c43525475 | ||
|
|
3f9704f1a4 | ||
|
|
f725ee8c97 | ||
|
|
2c3e944e03 | ||
|
|
1918e1e1e7 | ||
|
|
c96d28c005 | ||
|
|
0ab49e8346 | ||
|
|
1725b35ac9 | ||
|
|
1a1a6c0409 | ||
|
|
39672f95cb | ||
|
|
712b37490c | ||
|
|
449f17509e | ||
|
|
cd169b4904 | ||
|
|
d31fe4ec44 | ||
|
|
dc74003746 | ||
|
|
e8fd54dc02 | ||
|
|
c573ab7540 | ||
|
|
53b34d917f | ||
|
|
4079ff9b07 | ||
|
|
fc813427c5 | ||
|
|
255a4afc97 | ||
|
|
dc8392a55c | ||
|
|
b5cc50f90d | ||
|
|
da63a1d634 | ||
|
|
fc66b14900 | ||
|
|
49499ddb60 | ||
|
|
0fca9c9a65 | ||
|
|
ad6ebb9fa2 | ||
|
|
e229bbbb5d | ||
|
|
dae819bf03 | ||
|
|
984e4b5848 | ||
|
|
2c6fa871fd | ||
|
|
4afd009240 | ||
|
|
7c1ff398ef | ||
|
|
b555d546f3 | ||
|
|
7a89b6c6bd | ||
|
|
ca908905f0 | ||
|
|
e98ec49be5 | ||
|
|
562f6156ce | ||
|
|
12172b99ca | ||
|
|
0f66c6b6d8 | ||
|
|
631b95b9a1 | ||
|
|
dba08dadf4 | ||
|
|
ee5bf925ef | ||
|
|
36a2f799e1 | ||
|
|
9050c876b1 | ||
|
|
1101eebe94 | ||
|
|
3fd783abc5 | ||
|
|
67e45ace21 | ||
|
|
05299e024a | ||
|
|
c0663bc99c | ||
|
|
4732388b07 | ||
|
|
2a43e05b5f | ||
|
|
5f169e30ac | ||
|
|
c4547a80fc | ||
|
|
d06b6fc13d | ||
|
|
195f784173 | ||
|
|
abfd593f38 |
Binary file not shown.
@@ -0,0 +1,51 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
程序功能:输入带有数字和字母的字符串,使用指针,将数字放置在字母前面(按输入顺序)。
|
||||||
|
样例1:
|
||||||
|
输入字符串:jngk2025hello
|
||||||
|
排序后的字符串: 2025jngkhello
|
||||||
|
|
||||||
|
样例2:
|
||||||
|
输入字符串:123abc666def
|
||||||
|
排序后的字符串: 123666abcdef
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在
|
||||||
|
Program-End之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
void fn(char* str){
|
||||||
|
char *p,*q,ch;
|
||||||
|
p = str;
|
||||||
|
q = str;
|
||||||
|
/**********Program**********/
|
||||||
|
while(*p != '\0'){//p用来遍历所有元素
|
||||||
|
if(*p >= '0' && *p <= '9'){//当前位置指针的元素为数字
|
||||||
|
ch = *p;//备份当前的数字
|
||||||
|
q = p;//q存储当前这个数位置的地址
|
||||||
|
while(q != str){//将p地址前所有的字母整体后移一位
|
||||||
|
//到下一个元素地址为数组首地址或下一个元素为数字时停止
|
||||||
|
if(*(q-1) >='0' && *(q-1) <= '9'){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
*q = *(q-1);
|
||||||
|
q--;
|
||||||
|
}
|
||||||
|
*q = ch;
|
||||||
|
}
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char s[100];
|
||||||
|
printf("输入字符串:");
|
||||||
|
gets(s);
|
||||||
|
fn(s);
|
||||||
|
printf("排序后的字符串: %s\n",s);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
一名快递员有一个能承受最大重量为50公斤的送货箱。他需要依次接收若干个包裹,并将它们按顺序放入送货箱中进行配送。
|
||||||
|
每个包裹的重量各不相同。如果在接收某个包裹后,送货箱内的总重量超过了其最大承重能力,
|
||||||
|
则快递员需要先完成当前送货箱内所有包裹的配送,然后再开始接收新的包裹放入空的送货箱。
|
||||||
|
请计算快递员需要几次才能将所有包裹配送完毕。
|
||||||
|
(如果单个货物超过50公斤的(>50公斤),直接忽略不配送此货物)
|
||||||
|
|
||||||
|
示例1:
|
||||||
|
请输入包裹的数量:4
|
||||||
|
请依次输入每个包裹的重量(单位:公斤):
|
||||||
|
第 1 个包裹的重量: 8
|
||||||
|
第 2 个包裹的重量: 51
|
||||||
|
第 3 个包裹的重量: 6
|
||||||
|
第 4 个包裹的重量: 5
|
||||||
|
需要1次才能将所有包裹配送完毕。
|
||||||
|
|
||||||
|
示例2:
|
||||||
|
请输入包裹的数量:5
|
||||||
|
请依次输入每个包裹的重量(单位:公斤):
|
||||||
|
第 1 个包裹的重量: 8
|
||||||
|
第 2 个包裹的重量: 7
|
||||||
|
第 3 个包裹的重量: 50
|
||||||
|
第 4 个包裹的重量: 1
|
||||||
|
第 5 个包裹的重量: 2
|
||||||
|
需要3次才能将所有包裹配送完毕。
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在
|
||||||
|
Program-End之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
// 函数用于计算所需的送货次数
|
||||||
|
int calculateDeliveryTimes(int weights[], int size) {
|
||||||
|
int currentWeight = 0;
|
||||||
|
int deliveryTimes = 1;
|
||||||
|
|
||||||
|
/**********Program**********/
|
||||||
|
int i;
|
||||||
|
for(i=0;i<size;i++){
|
||||||
|
if(weights[i] <= 50){
|
||||||
|
if(currentWeight + weights[i] > 50){
|
||||||
|
currentWeight=0;
|
||||||
|
deliveryTimes++;
|
||||||
|
}
|
||||||
|
currentWeight += weights[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
return deliveryTimes;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int size;
|
||||||
|
|
||||||
|
printf("请输入包裹的数量:");
|
||||||
|
scanf("%d", &size);
|
||||||
|
|
||||||
|
int weights[size];
|
||||||
|
|
||||||
|
printf("请依次输入每个包裹的重量(单位:公斤):\n");
|
||||||
|
for (int i = 0; i < size; ++i) {
|
||||||
|
printf("第 %d 个包裹的重量: ", i + 1);
|
||||||
|
scanf("%d", &weights[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
int times = calculateDeliveryTimes(weights, size);
|
||||||
|
|
||||||
|
printf("需要%d次才能将所有包裹配送完毕。\n", times);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
+604
@@ -0,0 +1,604 @@
|
|||||||
|
### 表结构
|
||||||
|
|
||||||
|
```sql
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : localhost_3306
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 50743
|
||||||
|
Source Host : localhost:3306
|
||||||
|
Source Schema : db_education
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 50743
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 27/03/2025 12:56:48
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for t_course
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `t_course`;
|
||||||
|
CREATE TABLE `t_course` (
|
||||||
|
`id` int(10) NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
|
||||||
|
`description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
|
`period` int(10) NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB AUTO_INCREMENT = 10005 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of t_course
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO `t_course` VALUES (10001, '语文', '高中语文课程', 48);
|
||||||
|
INSERT INTO `t_course` VALUES (10002, '数学', '高中数学课程', 48);
|
||||||
|
INSERT INTO `t_course` VALUES (10003, '英语', '高中英语课程', 48);
|
||||||
|
INSERT INTO `t_course` VALUES (10004, '物理', '高中物理', 24);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for t_learn
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `t_learn`;
|
||||||
|
CREATE TABLE `t_learn` (
|
||||||
|
`id` int(10) NOT NULL AUTO_INCREMENT,
|
||||||
|
`s_id` int(10) NOT NULL,
|
||||||
|
`c_id` int(10) NOT NULL,
|
||||||
|
`schedule` int(11) NULL DEFAULT 0,
|
||||||
|
`createtime` datetime NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB AUTO_INCREMENT = 10201 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of t_learn
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO `t_learn` VALUES (10001, 10025, 10001, 17, '2024-05-17 11:38:34');
|
||||||
|
INSERT INTO `t_learn` VALUES (10002, 10032, 10001, 36, '2024-01-30 10:55:51');
|
||||||
|
INSERT INTO `t_learn` VALUES (10003, 10072, 10001, 44, '2024-09-12 09:41:22');
|
||||||
|
INSERT INTO `t_learn` VALUES (10004, 10010, 10001, 8, '2023-03-23 03:19:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10005, 10045, 10001, 46, '2023-08-03 01:06:54');
|
||||||
|
INSERT INTO `t_learn` VALUES (10006, 10086, 10001, 42, '2023-11-23 08:05:33');
|
||||||
|
INSERT INTO `t_learn` VALUES (10007, 10050, 10001, 3, '2024-10-27 22:15:01');
|
||||||
|
INSERT INTO `t_learn` VALUES (10008, 10046, 10001, 13, '2024-04-03 07:26:53');
|
||||||
|
INSERT INTO `t_learn` VALUES (10009, 10011, 10001, 31, '2023-09-28 20:42:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10010, 10055, 10001, 20, '2024-02-03 04:12:27');
|
||||||
|
INSERT INTO `t_learn` VALUES (10011, 10044, 10001, 15, '2023-10-05 10:23:35');
|
||||||
|
INSERT INTO `t_learn` VALUES (10013, 10040, 10001, 25, '2024-03-04 10:10:18');
|
||||||
|
INSERT INTO `t_learn` VALUES (10014, 10074, 10001, 14, '2024-03-12 11:24:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10015, 10069, 10001, 11, '2023-01-28 02:34:49');
|
||||||
|
INSERT INTO `t_learn` VALUES (10016, 10067, 10001, 11, '2024-04-29 22:19:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10017, 10087, 10001, 15, '2023-08-29 06:34:45');
|
||||||
|
INSERT INTO `t_learn` VALUES (10018, 10080, 10001, 24, '2024-11-11 00:58:52');
|
||||||
|
INSERT INTO `t_learn` VALUES (10019, 10093, 10001, 43, '2023-05-12 18:41:48');
|
||||||
|
INSERT INTO `t_learn` VALUES (10020, 10028, 10001, 35, '2023-05-17 17:04:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10021, 10062, 10001, 11, '2023-01-29 18:14:58');
|
||||||
|
INSERT INTO `t_learn` VALUES (10022, 10049, 10001, 34, '2024-09-25 10:38:12');
|
||||||
|
INSERT INTO `t_learn` VALUES (10023, 10039, 10001, 22, '2024-02-15 18:52:15');
|
||||||
|
INSERT INTO `t_learn` VALUES (10024, 10005, 10001, 29, '2023-04-25 08:55:57');
|
||||||
|
INSERT INTO `t_learn` VALUES (10025, 10065, 10001, 20, '2024-10-30 11:22:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10026, 10047, 10001, 22, '2023-09-07 21:46:19');
|
||||||
|
INSERT INTO `t_learn` VALUES (10027, 10012, 10001, 10, '2023-10-10 23:42:06');
|
||||||
|
INSERT INTO `t_learn` VALUES (10028, 10037, 10001, 5, '2024-03-09 23:35:22');
|
||||||
|
INSERT INTO `t_learn` VALUES (10029, 10018, 10001, 1, '2024-11-24 06:32:13');
|
||||||
|
INSERT INTO `t_learn` VALUES (10030, 10066, 10001, 27, '2023-12-01 18:53:00');
|
||||||
|
INSERT INTO `t_learn` VALUES (10031, 10063, 10001, 28, '2023-06-25 02:55:53');
|
||||||
|
INSERT INTO `t_learn` VALUES (10032, 10090, 10001, 47, '2024-04-21 14:00:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10033, 10085, 10001, 33, '2023-03-22 05:46:52');
|
||||||
|
INSERT INTO `t_learn` VALUES (10034, 10092, 10001, 5, '2024-04-13 02:36:54');
|
||||||
|
INSERT INTO `t_learn` VALUES (10035, 10060, 10001, 12, '2023-01-16 11:50:07');
|
||||||
|
INSERT INTO `t_learn` VALUES (10036, 10088, 10001, 7, '2023-10-17 01:08:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10037, 10071, 10001, 36, '2023-10-10 22:28:02');
|
||||||
|
INSERT INTO `t_learn` VALUES (10038, 10079, 10001, 33, '2024-08-31 07:01:33');
|
||||||
|
INSERT INTO `t_learn` VALUES (10039, 10091, 10001, 6, '2024-12-08 01:13:17');
|
||||||
|
INSERT INTO `t_learn` VALUES (10040, 10003, 10001, 2, '2023-02-18 11:46:20');
|
||||||
|
INSERT INTO `t_learn` VALUES (10041, 10083, 10001, 26, '2023-06-28 14:08:02');
|
||||||
|
INSERT INTO `t_learn` VALUES (10042, 10054, 10001, 43, '2023-09-14 12:57:41');
|
||||||
|
INSERT INTO `t_learn` VALUES (10043, 10017, 10001, 27, '2024-04-29 04:22:03');
|
||||||
|
INSERT INTO `t_learn` VALUES (10044, 10021, 10001, 43, '2023-09-11 09:03:59');
|
||||||
|
INSERT INTO `t_learn` VALUES (10045, 10014, 10001, 31, '2024-06-28 11:20:58');
|
||||||
|
INSERT INTO `t_learn` VALUES (10046, 10051, 10001, 24, '2023-06-19 05:29:25');
|
||||||
|
INSERT INTO `t_learn` VALUES (10047, 10035, 10001, 17, '2024-02-06 00:48:21');
|
||||||
|
INSERT INTO `t_learn` VALUES (10048, 10008, 10001, 29, '2023-12-28 10:32:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10049, 10100, 10001, 19, '2023-07-23 18:51:30');
|
||||||
|
INSERT INTO `t_learn` VALUES (10050, 10016, 10001, 33, '2024-07-05 11:07:38');
|
||||||
|
INSERT INTO `t_learn` VALUES (10051, 10033, 10001, 9, '2024-06-27 11:06:15');
|
||||||
|
INSERT INTO `t_learn` VALUES (10052, 10022, 10001, 15, '2023-11-29 06:00:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10053, 10082, 10001, 41, '2024-05-10 13:59:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10054, 10096, 10001, 11, '2023-02-27 13:35:38');
|
||||||
|
INSERT INTO `t_learn` VALUES (10055, 10030, 10001, 27, '2023-01-08 00:29:21');
|
||||||
|
INSERT INTO `t_learn` VALUES (10056, 10029, 10001, 24, '2024-03-01 05:48:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10057, 10075, 10001, 21, '2024-11-09 23:10:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10058, 10053, 10001, 1, '2024-10-28 14:38:52');
|
||||||
|
INSERT INTO `t_learn` VALUES (10059, 10041, 10001, 21, '2024-11-04 06:31:31');
|
||||||
|
INSERT INTO `t_learn` VALUES (10060, 10027, 10001, 14, '2024-08-30 16:31:07');
|
||||||
|
INSERT INTO `t_learn` VALUES (10061, 10031, 10001, 30, '2023-05-27 05:01:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10062, 10052, 10001, 17, '2024-10-28 01:47:09');
|
||||||
|
INSERT INTO `t_learn` VALUES (10063, 10026, 10001, 30, '2023-07-09 12:57:40');
|
||||||
|
INSERT INTO `t_learn` VALUES (10064, 10089, 10001, 15, '2023-10-01 05:36:14');
|
||||||
|
INSERT INTO `t_learn` VALUES (10065, 10043, 10001, 42, '2024-12-09 18:42:26');
|
||||||
|
INSERT INTO `t_learn` VALUES (10066, 10070, 10001, 11, '2023-02-18 10:25:15');
|
||||||
|
INSERT INTO `t_learn` VALUES (10067, 10059, 10001, 11, '2024-03-30 03:20:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10068, 10001, 10001, 6, '2024-05-16 09:40:05');
|
||||||
|
INSERT INTO `t_learn` VALUES (10069, 10023, 10001, 44, '2024-04-21 10:45:41');
|
||||||
|
INSERT INTO `t_learn` VALUES (10070, 10004, 10001, 3, '2024-08-13 07:19:31');
|
||||||
|
INSERT INTO `t_learn` VALUES (10071, 10076, 10001, 39, '2024-10-25 10:09:28');
|
||||||
|
INSERT INTO `t_learn` VALUES (10072, 10056, 10001, 37, '2023-09-01 08:05:29');
|
||||||
|
INSERT INTO `t_learn` VALUES (10073, 10019, 10001, 40, '2024-06-21 07:31:46');
|
||||||
|
INSERT INTO `t_learn` VALUES (10074, 10002, 10001, 38, '2023-03-14 18:31:13');
|
||||||
|
INSERT INTO `t_learn` VALUES (10075, 10064, 10001, 23, '2024-04-01 22:39:29');
|
||||||
|
INSERT INTO `t_learn` VALUES (10076, 10036, 10001, 44, '2023-08-09 04:24:49');
|
||||||
|
INSERT INTO `t_learn` VALUES (10077, 10078, 10001, 40, '2024-10-08 05:24:30');
|
||||||
|
INSERT INTO `t_learn` VALUES (10078, 10081, 10001, 21, '2024-04-09 13:56:25');
|
||||||
|
INSERT INTO `t_learn` VALUES (10079, 10084, 10001, 39, '2023-08-29 11:57:20');
|
||||||
|
INSERT INTO `t_learn` VALUES (10080, 10038, 10001, 15, '2024-10-02 13:21:22');
|
||||||
|
INSERT INTO `t_learn` VALUES (10081, 10025, 10002, 17, '2024-05-17 11:38:34');
|
||||||
|
INSERT INTO `t_learn` VALUES (10082, 10032, 10002, 36, '2024-01-30 10:55:51');
|
||||||
|
INSERT INTO `t_learn` VALUES (10083, 10072, 10002, 44, '2024-09-12 09:41:22');
|
||||||
|
INSERT INTO `t_learn` VALUES (10084, 10010, 10002, 8, '2023-03-23 03:19:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10085, 10045, 10002, 46, '2023-08-03 01:06:54');
|
||||||
|
INSERT INTO `t_learn` VALUES (10086, 10086, 10002, 42, '2023-11-23 08:05:33');
|
||||||
|
INSERT INTO `t_learn` VALUES (10087, 10050, 10002, 3, '2024-10-27 22:15:01');
|
||||||
|
INSERT INTO `t_learn` VALUES (10088, 10046, 10002, 13, '2024-04-03 07:26:53');
|
||||||
|
INSERT INTO `t_learn` VALUES (10089, 10011, 10002, 31, '2023-09-28 20:42:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10090, 10055, 10002, 20, '2024-02-03 04:12:27');
|
||||||
|
INSERT INTO `t_learn` VALUES (10091, 10044, 10002, 15, '2023-10-05 10:23:35');
|
||||||
|
INSERT INTO `t_learn` VALUES (10092, 10098, 10002, 35, '2023-05-19 22:15:18');
|
||||||
|
INSERT INTO `t_learn` VALUES (10093, 10040, 10002, 25, '2024-03-04 10:10:18');
|
||||||
|
INSERT INTO `t_learn` VALUES (10094, 10074, 10002, 14, '2024-03-12 11:24:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10095, 10069, 10002, 11, '2023-01-28 02:34:49');
|
||||||
|
INSERT INTO `t_learn` VALUES (10096, 10067, 10002, 11, '2024-04-29 22:19:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10097, 10087, 10002, 15, '2023-08-29 06:34:45');
|
||||||
|
INSERT INTO `t_learn` VALUES (10098, 10080, 10002, 24, '2024-11-11 00:58:52');
|
||||||
|
INSERT INTO `t_learn` VALUES (10099, 10093, 10002, 43, '2023-05-12 18:41:48');
|
||||||
|
INSERT INTO `t_learn` VALUES (10100, 10028, 10002, 35, '2023-05-17 17:04:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10101, 10062, 10002, 11, '2023-01-29 18:14:58');
|
||||||
|
INSERT INTO `t_learn` VALUES (10102, 10049, 10002, 34, '2024-09-25 10:38:12');
|
||||||
|
INSERT INTO `t_learn` VALUES (10103, 10039, 10002, 22, '2024-02-15 18:52:15');
|
||||||
|
INSERT INTO `t_learn` VALUES (10104, 10005, 10002, 29, '2023-04-25 08:55:57');
|
||||||
|
INSERT INTO `t_learn` VALUES (10105, 10065, 10002, 20, '2024-10-30 11:22:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10106, 10047, 10002, 22, '2023-09-07 21:46:19');
|
||||||
|
INSERT INTO `t_learn` VALUES (10107, 10012, 10002, 10, '2023-10-10 23:42:06');
|
||||||
|
INSERT INTO `t_learn` VALUES (10108, 10037, 10002, 5, '2024-03-09 23:35:22');
|
||||||
|
INSERT INTO `t_learn` VALUES (10109, 10018, 10002, 1, '2024-11-24 06:32:13');
|
||||||
|
INSERT INTO `t_learn` VALUES (10110, 10066, 10002, 27, '2023-12-01 18:53:00');
|
||||||
|
INSERT INTO `t_learn` VALUES (10111, 10063, 10002, 28, '2023-06-25 02:55:53');
|
||||||
|
INSERT INTO `t_learn` VALUES (10112, 10090, 10002, 47, '2024-04-21 14:00:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10113, 10085, 10002, 33, '2023-03-22 05:46:52');
|
||||||
|
INSERT INTO `t_learn` VALUES (10114, 10092, 10002, 5, '2024-04-13 02:36:54');
|
||||||
|
INSERT INTO `t_learn` VALUES (10115, 10060, 10002, 12, '2023-01-16 11:50:07');
|
||||||
|
INSERT INTO `t_learn` VALUES (10116, 10088, 10002, 7, '2023-10-17 01:08:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10117, 10071, 10002, 36, '2023-10-10 22:28:02');
|
||||||
|
INSERT INTO `t_learn` VALUES (10118, 10079, 10002, 33, '2024-08-31 07:01:33');
|
||||||
|
INSERT INTO `t_learn` VALUES (10119, 10091, 10002, 6, '2024-12-08 01:13:17');
|
||||||
|
INSERT INTO `t_learn` VALUES (10120, 10003, 10002, 2, '2023-02-18 11:46:20');
|
||||||
|
INSERT INTO `t_learn` VALUES (10121, 10083, 10002, 26, '2023-06-28 14:08:02');
|
||||||
|
INSERT INTO `t_learn` VALUES (10122, 10054, 10002, 43, '2023-09-14 12:57:41');
|
||||||
|
INSERT INTO `t_learn` VALUES (10123, 10017, 10002, 27, '2024-04-29 04:22:03');
|
||||||
|
INSERT INTO `t_learn` VALUES (10124, 10021, 10002, 43, '2023-09-11 09:03:59');
|
||||||
|
INSERT INTO `t_learn` VALUES (10125, 10014, 10002, 31, '2024-06-28 11:20:58');
|
||||||
|
INSERT INTO `t_learn` VALUES (10126, 10051, 10002, 24, '2023-06-19 05:29:25');
|
||||||
|
INSERT INTO `t_learn` VALUES (10127, 10035, 10002, 17, '2024-02-06 00:48:21');
|
||||||
|
INSERT INTO `t_learn` VALUES (10128, 10008, 10002, 29, '2023-12-28 10:32:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10129, 10100, 10002, 19, '2023-07-23 18:51:30');
|
||||||
|
INSERT INTO `t_learn` VALUES (10130, 10016, 10002, 33, '2024-07-05 11:07:38');
|
||||||
|
INSERT INTO `t_learn` VALUES (10131, 10033, 10002, 9, '2024-06-27 11:06:15');
|
||||||
|
INSERT INTO `t_learn` VALUES (10132, 10022, 10002, 15, '2023-11-29 06:00:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10133, 10082, 10002, 41, '2024-05-10 13:59:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10134, 10096, 10002, 11, '2023-02-27 13:35:38');
|
||||||
|
INSERT INTO `t_learn` VALUES (10135, 10030, 10002, 27, '2023-01-08 00:29:21');
|
||||||
|
INSERT INTO `t_learn` VALUES (10136, 10029, 10002, 24, '2024-03-01 05:48:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10137, 10075, 10002, 21, '2024-11-09 23:10:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10138, 10053, 10002, 1, '2024-10-28 14:38:52');
|
||||||
|
INSERT INTO `t_learn` VALUES (10139, 10041, 10002, 21, '2024-11-04 06:31:31');
|
||||||
|
INSERT INTO `t_learn` VALUES (10140, 10027, 10002, 14, '2024-08-30 16:31:07');
|
||||||
|
INSERT INTO `t_learn` VALUES (10141, 10031, 10002, 30, '2023-05-27 05:01:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10142, 10052, 10002, 17, '2024-10-28 01:47:09');
|
||||||
|
INSERT INTO `t_learn` VALUES (10143, 10026, 10002, 30, '2023-07-09 12:57:40');
|
||||||
|
INSERT INTO `t_learn` VALUES (10144, 10089, 10002, 15, '2023-10-01 05:36:14');
|
||||||
|
INSERT INTO `t_learn` VALUES (10145, 10043, 10002, 42, '2024-12-09 18:42:26');
|
||||||
|
INSERT INTO `t_learn` VALUES (10146, 10070, 10002, 11, '2023-02-18 10:25:15');
|
||||||
|
INSERT INTO `t_learn` VALUES (10147, 10059, 10002, 11, '2024-03-30 03:20:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10148, 10001, 10002, 6, '2024-05-16 09:40:05');
|
||||||
|
INSERT INTO `t_learn` VALUES (10149, 10023, 10002, 44, '2024-04-21 10:45:41');
|
||||||
|
INSERT INTO `t_learn` VALUES (10150, 10004, 10002, 3, '2024-08-13 07:19:31');
|
||||||
|
INSERT INTO `t_learn` VALUES (10151, 10025, 10003, 17, '2024-05-17 11:38:34');
|
||||||
|
INSERT INTO `t_learn` VALUES (10152, 10032, 10003, 36, '2024-01-30 10:55:51');
|
||||||
|
INSERT INTO `t_learn` VALUES (10153, 10072, 10003, 44, '2024-09-12 09:41:22');
|
||||||
|
INSERT INTO `t_learn` VALUES (10154, 10010, 10003, 8, '2023-03-23 03:19:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10155, 10045, 10003, 46, '2023-08-03 01:06:54');
|
||||||
|
INSERT INTO `t_learn` VALUES (10156, 10086, 10003, 42, '2023-11-23 08:05:33');
|
||||||
|
INSERT INTO `t_learn` VALUES (10157, 10050, 10003, 3, '2024-10-27 22:15:01');
|
||||||
|
INSERT INTO `t_learn` VALUES (10158, 10046, 10003, 13, '2024-04-03 07:26:53');
|
||||||
|
INSERT INTO `t_learn` VALUES (10159, 10011, 10003, 31, '2023-09-28 20:42:04');
|
||||||
|
INSERT INTO `t_learn` VALUES (10160, 10055, 10003, 20, '2024-02-03 04:12:27');
|
||||||
|
INSERT INTO `t_learn` VALUES (10161, 10044, 10003, 15, '2023-10-05 10:23:35');
|
||||||
|
INSERT INTO `t_learn` VALUES (10162, 10098, 10003, 35, '2023-05-19 22:15:18');
|
||||||
|
INSERT INTO `t_learn` VALUES (10163, 10040, 10003, 25, '2024-03-04 10:10:18');
|
||||||
|
INSERT INTO `t_learn` VALUES (10164, 10074, 10003, 14, '2024-03-12 11:24:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10165, 10069, 10003, 11, '2023-01-28 02:34:49');
|
||||||
|
INSERT INTO `t_learn` VALUES (10166, 10067, 10003, 11, '2024-04-29 22:19:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10167, 10087, 10003, 15, '2023-08-29 06:34:45');
|
||||||
|
INSERT INTO `t_learn` VALUES (10168, 10080, 10003, 24, '2024-11-11 00:58:52');
|
||||||
|
INSERT INTO `t_learn` VALUES (10169, 10093, 10003, 43, '2023-05-12 18:41:48');
|
||||||
|
INSERT INTO `t_learn` VALUES (10170, 10028, 10003, 35, '2023-05-17 17:04:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10171, 10062, 10003, 11, '2023-01-29 18:14:58');
|
||||||
|
INSERT INTO `t_learn` VALUES (10172, 10049, 10003, 34, '2024-09-25 10:38:12');
|
||||||
|
INSERT INTO `t_learn` VALUES (10173, 10039, 10003, 22, '2024-02-15 18:52:15');
|
||||||
|
INSERT INTO `t_learn` VALUES (10174, 10005, 10003, 29, '2023-04-25 08:55:57');
|
||||||
|
INSERT INTO `t_learn` VALUES (10175, 10065, 10003, 20, '2024-10-30 11:22:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10176, 10047, 10003, 22, '2023-09-07 21:46:19');
|
||||||
|
INSERT INTO `t_learn` VALUES (10177, 10012, 10003, 10, '2023-10-10 23:42:06');
|
||||||
|
INSERT INTO `t_learn` VALUES (10178, 10037, 10003, 5, '2024-03-09 23:35:22');
|
||||||
|
INSERT INTO `t_learn` VALUES (10179, 10018, 10003, 1, '2024-11-24 06:32:13');
|
||||||
|
INSERT INTO `t_learn` VALUES (10180, 10066, 10003, 27, '2023-12-01 18:53:00');
|
||||||
|
INSERT INTO `t_learn` VALUES (10181, 10063, 10003, 28, '2023-06-25 02:55:53');
|
||||||
|
INSERT INTO `t_learn` VALUES (10182, 10090, 10003, 47, '2024-04-21 14:00:37');
|
||||||
|
INSERT INTO `t_learn` VALUES (10183, 10085, 10003, 33, '2023-03-22 05:46:52');
|
||||||
|
INSERT INTO `t_learn` VALUES (10184, 10092, 10003, 5, '2024-04-13 02:36:54');
|
||||||
|
INSERT INTO `t_learn` VALUES (10185, 10060, 10003, 12, '2023-01-16 11:50:07');
|
||||||
|
INSERT INTO `t_learn` VALUES (10186, 10088, 10003, 7, '2023-10-17 01:08:32');
|
||||||
|
INSERT INTO `t_learn` VALUES (10187, 10071, 10003, 36, '2023-10-10 22:28:02');
|
||||||
|
INSERT INTO `t_learn` VALUES (10188, 10079, 10003, 33, '2024-08-31 07:01:33');
|
||||||
|
INSERT INTO `t_learn` VALUES (10189, 10091, 10003, 6, '2024-12-08 01:13:17');
|
||||||
|
INSERT INTO `t_learn` VALUES (10190, 10003, 10003, 2, '2023-02-18 11:46:20');
|
||||||
|
INSERT INTO `t_learn` VALUES (10191, 10083, 10003, 26, '2023-06-28 14:08:02');
|
||||||
|
INSERT INTO `t_learn` VALUES (10192, 10054, 10003, 43, '2023-09-14 12:57:41');
|
||||||
|
INSERT INTO `t_learn` VALUES (10193, 10017, 10003, 27, '2024-04-29 04:22:03');
|
||||||
|
INSERT INTO `t_learn` VALUES (10194, 10021, 10003, 43, '2023-09-11 09:03:59');
|
||||||
|
INSERT INTO `t_learn` VALUES (10195, 10014, 10003, 31, '2024-06-28 11:20:58');
|
||||||
|
INSERT INTO `t_learn` VALUES (10196, 10051, 10003, 24, '2023-06-19 05:29:25');
|
||||||
|
INSERT INTO `t_learn` VALUES (10197, 10035, 10003, 17, '2024-02-06 00:48:21');
|
||||||
|
INSERT INTO `t_learn` VALUES (10198, 10008, 10003, 29, '2023-12-28 10:32:43');
|
||||||
|
INSERT INTO `t_learn` VALUES (10199, 10100, 10003, 19, '2023-07-23 18:51:30');
|
||||||
|
INSERT INTO `t_learn` VALUES (10200, 10016, 10003, 33, '2024-07-05 11:07:38');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for t_student
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `t_student`;
|
||||||
|
CREATE TABLE `t_student` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
|
`username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
|
||||||
|
`password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB AUTO_INCREMENT = 10101 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of t_student
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO `t_student` VALUES (10001, '周岚', 'G1WGE2rmBJ', 'BnxWZAnSPk');
|
||||||
|
INSERT INTO `t_student` VALUES (10002, '石晓明', 'O5UrHL3wAk', 'jXvPgYp6T7');
|
||||||
|
INSERT INTO `t_student` VALUES (10003, '丁子韬', 'z6scv3YR39', 'Gkj7yea68K');
|
||||||
|
INSERT INTO `t_student` VALUES (10004, '贾詩涵', 'dDRhbsIFld', '9S5wmKyd8u');
|
||||||
|
INSERT INTO `t_student` VALUES (10005, '贾震南', 'yp6ONN6mPK', 'rESuH77r0D');
|
||||||
|
INSERT INTO `t_student` VALUES (10006, '龚杰宏', '6mX9UUocUJ', 'Vbu9vJS9Eo');
|
||||||
|
INSERT INTO `t_student` VALUES (10007, '金詩涵', 'J7CEMWLje5', '7XYgyIh7xR');
|
||||||
|
INSERT INTO `t_student` VALUES (10008, '秦子异', 'szo1eVBizJ', 'dY2RfyIb1m');
|
||||||
|
INSERT INTO `t_student` VALUES (10009, '袁宇宁', 'J5YrjzB2si', 'UAMXTO3rQ6');
|
||||||
|
INSERT INTO `t_student` VALUES (10010, '姜秀英', '2MU2HeylW4', '1AfW3NhbgN');
|
||||||
|
INSERT INTO `t_student` VALUES (10011, '汤杰宏', 'MpE4EPWxqG', 'oaNVhDmy7z');
|
||||||
|
INSERT INTO `t_student` VALUES (10012, '韦安琪', 'Kdmd781EtP', 'KfjEMQxKep');
|
||||||
|
INSERT INTO `t_student` VALUES (10013, '唐嘉伦', 'V0C7xf6fjc', 'e1r7KJIx8w');
|
||||||
|
INSERT INTO `t_student` VALUES (10014, '韩詩涵', 'J273ldcncO', '8hcoDqM4G5');
|
||||||
|
INSERT INTO `t_student` VALUES (10015, '邱睿', '5f2pShjufE', 'ABRfNTK0oD');
|
||||||
|
INSERT INTO `t_student` VALUES (10016, '田云熙', 'r6GS6H1Y9i', 'QLPFuc1Ymo');
|
||||||
|
INSERT INTO `t_student` VALUES (10017, '任璐', 'fOEFM89DMY', 'fgm3mOBTRs');
|
||||||
|
INSERT INTO `t_student` VALUES (10018, '阎嘉伦', 'uf0T82j8vV', 'MVun8E08gr');
|
||||||
|
INSERT INTO `t_student` VALUES (10019, '杨秀英', '3ZQyavexff', 'tne8w9hwyT');
|
||||||
|
INSERT INTO `t_student` VALUES (10020, '贺岚', 'MUzeIJ2Zho', '3hTbEiOlcV');
|
||||||
|
INSERT INTO `t_student` VALUES (10021, '贾安琪', 'hQKvLXLbdr', 'GxmMRZIVTq');
|
||||||
|
INSERT INTO `t_student` VALUES (10022, '李震南', 'umEYhDRNCg', 'VIttqgl4h2');
|
||||||
|
INSERT INTO `t_student` VALUES (10023, '张璐', 'MLmnE9XMrj', 'Vo0HRIunBH');
|
||||||
|
INSERT INTO `t_student` VALUES (10024, '韦震南', 'g9pxVI84lQ', 'J59D4b8VVF');
|
||||||
|
INSERT INTO `t_student` VALUES (10025, '严睿', 'GxDaQjWmSb', 'liZCUpGHfa');
|
||||||
|
INSERT INTO `t_student` VALUES (10026, '姜杰宏', 'kygY1DCCEp', 'VEGVJlU6Ra');
|
||||||
|
INSERT INTO `t_student` VALUES (10027, '尹震南', 'gDvPS0b24b', 'rjzJgMQWTc');
|
||||||
|
INSERT INTO `t_student` VALUES (10028, '罗璐', 'S0jjEsFNQJ', 'C6stBhYttY');
|
||||||
|
INSERT INTO `t_student` VALUES (10029, '姚云熙', 'vEr1jpIgKr', 'cyuhQPR8Lh');
|
||||||
|
INSERT INTO `t_student` VALUES (10030, '黄子异', 'GRCYTc1DWx', 'kTTYbTor84');
|
||||||
|
INSERT INTO `t_student` VALUES (10031, '何詩涵', 'gk2SUc1U35', 'ZRIAUeMSYs');
|
||||||
|
INSERT INTO `t_student` VALUES (10032, '宋安琪', '35U0zOXWcV', 'Ab3HmKqiqv');
|
||||||
|
INSERT INTO `t_student` VALUES (10033, '陶璐', 'BDNIQACb7W', 'qJD4q0lDsh');
|
||||||
|
INSERT INTO `t_student` VALUES (10034, '顾睿', 'BdjipSZSh3', 'mtRT0VxhFe');
|
||||||
|
INSERT INTO `t_student` VALUES (10035, '高杰宏', '4IhblDisF7', 'LKKHmwgBXD');
|
||||||
|
INSERT INTO `t_student` VALUES (10036, '薛詩涵', 'Y8EEoaicyB', 'rCRrqBFJsv');
|
||||||
|
INSERT INTO `t_student` VALUES (10037, '丁秀英', '9SlsI0PoyD', 'qsxw3ign25');
|
||||||
|
INSERT INTO `t_student` VALUES (10038, '贾晓明', 'odNONklQs9', 'BiO5UOkdnW');
|
||||||
|
INSERT INTO `t_student` VALUES (10039, '任嘉伦', 'VHuzfHBoBO', 'lTAovUC389');
|
||||||
|
INSERT INTO `t_student` VALUES (10040, '胡震南', 'sv46bTnf0P', 'iBzeHjykYx');
|
||||||
|
INSERT INTO `t_student` VALUES (10041, '萧睿', '0TDvbKZIoK', 'zZ9ZYbUS8y');
|
||||||
|
INSERT INTO `t_student` VALUES (10042, '于子韬', 'ByZpvehylm', 'tFjQxRfu6v');
|
||||||
|
INSERT INTO `t_student` VALUES (10043, '吴子韬', 'zgNIgSi0R6', 'NnCXSPGSG9');
|
||||||
|
INSERT INTO `t_student` VALUES (10044, '袁子异', 'QofuPCZDj2', 'OQKCjRA6KL');
|
||||||
|
INSERT INTO `t_student` VALUES (10045, '孙岚', 'RX9ReXfnDD', 'iaFxFUs3UR');
|
||||||
|
INSERT INTO `t_student` VALUES (10046, '袁晓明', '9AnMs8NLT7', 'TBAHhl6HP4');
|
||||||
|
INSERT INTO `t_student` VALUES (10047, '邹云熙', 'cVTK8Zk23n', 'sHZWvI31eg');
|
||||||
|
INSERT INTO `t_student` VALUES (10048, '潘震南', 'sl9DcFJ7l0', 'mCKMLEAWnL');
|
||||||
|
INSERT INTO `t_student` VALUES (10049, '侯安琪', 'y0yHJRlVD0', '8w14vG11Lo');
|
||||||
|
INSERT INTO `t_student` VALUES (10050, '宋致远', 'mbj6fi5LVJ', 'EvI1OF2mUU');
|
||||||
|
INSERT INTO `t_student` VALUES (10051, '向杰宏', 'rdTBGDlk1e', 'KLrEH5OIRV');
|
||||||
|
INSERT INTO `t_student` VALUES (10052, '侯岚', 'vRIL8GezRB', 'BCnlCfMe3i');
|
||||||
|
INSERT INTO `t_student` VALUES (10053, '郝震南', 'N5OHE7WNRd', 'YSEMSIBoF6');
|
||||||
|
INSERT INTO `t_student` VALUES (10054, '田晓明', 'JFjgjbtPYw', 'C1GMv8jJI4');
|
||||||
|
INSERT INTO `t_student` VALUES (10055, '金岚', 'gpRnYYtKUp', 'I7Ha61aFlW');
|
||||||
|
INSERT INTO `t_student` VALUES (10056, '何晓明', 'mIUWaHvpVT', '0sGahlQonR');
|
||||||
|
INSERT INTO `t_student` VALUES (10057, '吕睿', 'FfkVgyM5SS', 'ie36JBbaUq');
|
||||||
|
INSERT INTO `t_student` VALUES (10058, '段岚', 'qZWlkeuZou', 'UxP4bndlVw');
|
||||||
|
INSERT INTO `t_student` VALUES (10059, '宋詩涵', 'McHsYoxoix', 'QedjPd3cfE');
|
||||||
|
INSERT INTO `t_student` VALUES (10060, '谢秀英', 'Pw2td9ptEO', 'YCdTBkV5u1');
|
||||||
|
INSERT INTO `t_student` VALUES (10061, '姚睿', 't4zYkGf3fF', '848evloRxx');
|
||||||
|
INSERT INTO `t_student` VALUES (10062, '贺安琪', '1RjkUEhkZY', '4f0WkjDBkk');
|
||||||
|
INSERT INTO `t_student` VALUES (10063, '段嘉伦', 'qPY9LKYuqQ', 'jeBmxO9JHj');
|
||||||
|
INSERT INTO `t_student` VALUES (10064, '唐震南', 'r6bXO95F2D', 'X3HbgEcK8Y');
|
||||||
|
INSERT INTO `t_student` VALUES (10065, '谢岚', 'naL2KZrHwA', 'AkqosUcsuV');
|
||||||
|
INSERT INTO `t_student` VALUES (10066, '杨安琪', 'AX8Deo1g7Q', 'qaF4nJ5WpP');
|
||||||
|
INSERT INTO `t_student` VALUES (10067, '吴杰宏', 'GMzkfndLZv', 'tVfNr43Awi');
|
||||||
|
INSERT INTO `t_student` VALUES (10068, '曹晓明', '3MhPP9Ba2T', 'WdLUDxvV4D');
|
||||||
|
INSERT INTO `t_student` VALUES (10069, '赵杰宏', 'bifOEeXCWu', 'LOYM3jaDT2');
|
||||||
|
INSERT INTO `t_student` VALUES (10070, '钟安琪', 'RaRkUvlMKo', 'YZvGiLMMPa');
|
||||||
|
INSERT INTO `t_student` VALUES (10071, '向云熙', 'JLLo5dbzOE', 'dwjwJlsE2J');
|
||||||
|
INSERT INTO `t_student` VALUES (10072, '雷晓明', 'SzkAnohkjE', 'vEI4b77pR7');
|
||||||
|
INSERT INTO `t_student` VALUES (10073, '汪云熙', 'Dx0e0UItxA', 'phZtzNxzOq');
|
||||||
|
INSERT INTO `t_student` VALUES (10074, '杨子异', 'fD9kEW1Sq6', 'zImkNQBSUQ');
|
||||||
|
INSERT INTO `t_student` VALUES (10075, '郭睿', 'JnzPqdQDt8', 'gEcH8ew4sF');
|
||||||
|
INSERT INTO `t_student` VALUES (10076, '沈子韬', 'ttt1sSrCzJ', '5ywB4pgDqm');
|
||||||
|
INSERT INTO `t_student` VALUES (10077, '朱子异', 'XnNaK6Q9gu', '888888');
|
||||||
|
INSERT INTO `t_student` VALUES (10078, '侯璐', 'FqbUPAxjR1', 'hTWsxzLogn');
|
||||||
|
INSERT INTO `t_student` VALUES (10079, '许宇宁', 'LkzJ9oO3PV', 'sQ12axSWyz');
|
||||||
|
INSERT INTO `t_student` VALUES (10080, '高云熙', '89PlIz8Y7B', 'h8VtFDBIgf');
|
||||||
|
INSERT INTO `t_student` VALUES (10081, '杜安琪', 'EIeSoLwSW3', 'dla1wIhe3w');
|
||||||
|
INSERT INTO `t_student` VALUES (10082, '冯嘉伦', 'Ot9OQzc5Tf', 'HpucsNAfnU');
|
||||||
|
INSERT INTO `t_student` VALUES (10083, '彭子韬', 'UkeqT8NtJX', '3fPftOFs96');
|
||||||
|
INSERT INTO `t_student` VALUES (10084, '史震南', 'C1ONnCOf1a', '2wTfHZYsnV');
|
||||||
|
INSERT INTO `t_student` VALUES (10085, '尹云熙', 'pPD5hlAxiW', 'R9yAP19RJH');
|
||||||
|
INSERT INTO `t_student` VALUES (10086, '许震南', 'tHPwJY3CDY', 'kwd4uH98o3');
|
||||||
|
INSERT INTO `t_student` VALUES (10087, '李安琪', 'K2r0WllYzO', 'kNRVRYv0qr');
|
||||||
|
INSERT INTO `t_student` VALUES (10088, '林子异', '8Ttbp7gc06', 'lj7SdtOYwS');
|
||||||
|
INSERT INTO `t_student` VALUES (10089, '严嘉伦', 'PNIs8LHIUr', '7XVizBwqrW');
|
||||||
|
INSERT INTO `t_student` VALUES (10090, '黎杰宏', 'rmjckwsCP6', 'O7BYlHG8A5');
|
||||||
|
INSERT INTO `t_student` VALUES (10091, '梁杰宏', 'ya3q3e30R9', 'ZpToh85AMq');
|
||||||
|
INSERT INTO `t_student` VALUES (10092, '张晓明', 'mkY7T8tpA6', 'PW3j7y3ZQS');
|
||||||
|
INSERT INTO `t_student` VALUES (10093, '吴致远', 'ba5fmbCSUO', 'MMfkS9Lwr7');
|
||||||
|
INSERT INTO `t_student` VALUES (10094, '陶詩涵', '7bWA6xXp1A', 'Tlo0LxVlVH');
|
||||||
|
INSERT INTO `t_student` VALUES (10095, '曹睿', 'N08y7yJu15', '8ue93KnrvI');
|
||||||
|
INSERT INTO `t_student` VALUES (10096, '方宇宁', 't9xDmfZaEQ', 'Xm9umRA1Uc');
|
||||||
|
INSERT INTO `t_student` VALUES (10097, '曹安琪', 'vG4ZtAQanT', 'Vth5vsry9y');
|
||||||
|
INSERT INTO `t_student` VALUES (10098, '杨子异', 'YUf12JCtO6', '8999nWETCU');
|
||||||
|
INSERT INTO `t_student` VALUES (10099, '于杰宏', 'l3NbjhRoCR', 'qCPLVovMjL');
|
||||||
|
INSERT INTO `t_student` VALUES (10100, '郑震南', 'G3nVY0YbM8', 'vLRejxC1Ve');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for t_video
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `t_video`;
|
||||||
|
CREATE TABLE `t_video` (
|
||||||
|
`id` int(10) NOT NULL AUTO_INCREMENT,
|
||||||
|
`c_id` int(10) NOT NULL,
|
||||||
|
`title` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
|
`link` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB AUTO_INCREMENT = 10145 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of t_video
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO `t_video` VALUES (10001, 10001, 'Navicat Monitor requires ', 'https://video.nishiminat.com/CellPhonesAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10002, 10003, 'To successfully establish ', 'https://video.kamtl.cn/CenturionGardenOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10003, 10002, 'How we spend our days ', 'http://video.kjialun.net/CenturionGardenOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10004, 10003, 'To successfully establish ', 'https://video.hyhan56.net/Handcrafts');
|
||||||
|
INSERT INTO `t_video` VALUES (10005, 10002, 'If the Show objects under ', 'http://video.shishih.xyz/SportsOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10006, 10003, 'Anyone who has ever made ', 'https://video.anme7.com/Books');
|
||||||
|
INSERT INTO `t_video` VALUES (10007, 10002, 'To get a secure connection, ', 'http://video.manuelell60.info/HealthBabyCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10008, 10002, 'To successfully establish ', 'http://video.imi10.us/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10009, 10003, 'It provides strong authentication ', 'https://video.miutszching.org/Appliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10010, 10001, 'There is no way to happiness. ', 'http://video.vasquedwa.biz/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10011, 10001, 'Import Wizard allows ', 'http://video.stszhin.org/CDsVinyl');
|
||||||
|
INSERT INTO `t_video` VALUES (10012, 10002, 'Flexible settings enable ', 'http://video.psarah.us/Others');
|
||||||
|
INSERT INTO `t_video` VALUES (10013, 10001, 'To connect to a database ', 'http://video.yamadsara.jp/Food');
|
||||||
|
INSERT INTO `t_video` VALUES (10014, 10002, 'If you wait, all that ', 'https://video.wfts1.co.jp/ToysGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10015, 10003, 'It wasn’t raining when ', 'http://video.cook77.net/ToysGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10016, 10002, 'Success consists of going ', 'http://video.zhiyuanding.us/CellPhonesAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10017, 10003, 'In other words, Navicat ', 'https://video.waiyeesiu.biz/BeautyPersonalCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10018, 10002, 'If the Show objects under ', 'http://video.sumwinglok.biz/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10019, 10001, 'I will greet this day ', 'https://video.carol3.net/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10020, 10002, 'SQL Editor allows you ', 'https://video.kad.xyz/MusicalInstrument');
|
||||||
|
INSERT INTO `t_video` VALUES (10021, 10003, 'In the Objects tab, you ', 'https://video.luj.org/SportsOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10022, 10003, 'It collects process metrics ', 'https://video.laws10.jp/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10023, 10001, 'Navicat provides powerful ', 'https://video.xiaoming9.net/Appliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10024, 10002, 'A man’s best friends ', 'http://video.zhiyuliang8.jp/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10025, 10002, 'It wasn’t raining when ', 'https://video.hu1942.us/CDsVinyl');
|
||||||
|
INSERT INTO `t_video` VALUES (10026, 10001, 'Anyone who has never ', 'https://video.shim.co.jp/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10027, 10001, 'The reason why a great ', 'http://video.hazukio.org/CollectiblesFineArt');
|
||||||
|
INSERT INTO `t_video` VALUES (10028, 10002, 'Creativity is intelligence having fun.', 'http://video.matsudae07.cn/ToysGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10029, 10002, 'Optimism is the one quality ', 'https://video.zhenjiang711.jp/HouseholdKitchenAppliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10030, 10001, 'A query is used to extract ', 'http://video.karyanchoi.us/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10031, 10001, 'To successfully establish ', 'http://video.kaming43.xyz/SportsOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10032, 10001, 'To successfully establish ', 'http://video.ylu321.net/FilmSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10033, 10002, 'In other words, Navicat ', 'https://video.bt10.info/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10034, 10002, 'There is no way to happiness. ', 'http://video.hung9.co.jp/ClothingShoesandJewelry');
|
||||||
|
INSERT INTO `t_video` VALUES (10035, 10002, 'The first step is as good as half over.', 'https://video.muran.jp/Baby');
|
||||||
|
INSERT INTO `t_video` VALUES (10036, 10001, 'All the Navicat Cloud ', 'http://video.gonzalezbru85.cn/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10037, 10002, 'Navicat 15 has added ', 'https://video.jesusoto.co.jp/Appliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10038, 10001, 'It wasn’t raining when ', 'http://video.carant.co.jp/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10039, 10002, 'If your Internet Service ', 'http://video.edwards1.jp/CDsVinyl');
|
||||||
|
INSERT INTO `t_video` VALUES (10040, 10002, 'You must be the change ', 'https://video.zhiyuan2.org/FilmSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10041, 10002, 'All journeys have secret ', 'https://video.tlwan4.net/BaggageTravelEquipment');
|
||||||
|
INSERT INTO `t_video` VALUES (10042, 10001, 'It wasn’t raining when ', 'http://video.hanzit.xyz/HealthBabyCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10043, 10002, 'Import Wizard allows ', 'http://video.willimoore83.net/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10044, 10003, 'Navicat is a multi-connections ', 'https://video.porter620.cn/ToysGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10045, 10002, 'Navicat Data Modeler ', 'http://video.su715.com/Food');
|
||||||
|
INSERT INTO `t_video` VALUES (10046, 10001, 'Remember that failure ', 'https://video.watsonapril.jp/FilmSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10047, 10003, 'Import Wizard allows ', 'http://video.sarahriv10.xyz/HouseholdKitchenAppliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10048, 10001, 'Navicat Cloud could not ', 'http://video.medw.org/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10049, 10002, 'It collects process metrics ', 'http://video.okamomo.com/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10050, 10003, 'Navicat 15 has added ', 'http://video.renaokada.xyz/Others');
|
||||||
|
INSERT INTO `t_video` VALUES (10051, 10003, 'The On Startup feature ', 'https://video.rythomas104.info/Beauty');
|
||||||
|
INSERT INTO `t_video` VALUES (10052, 10001, 'You will succeed because ', 'http://video.saitoaoshi.co.jp/BaggageTravelEquipment');
|
||||||
|
INSERT INTO `t_video` VALUES (10053, 10001, 'Navicat is a multi-connections ', 'http://video.lzhen.info/MusicalInstrument');
|
||||||
|
INSERT INTO `t_video` VALUES (10054, 10003, 'If it scares you, it ', 'https://video.barnes722.info/MusicalInstrument');
|
||||||
|
INSERT INTO `t_video` VALUES (10055, 10002, 'HTTP Tunneling is a method ', 'http://video.man1.us/SportsOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10056, 10003, 'The On Startup feature ', 'https://video.he506.us/BeautyPersonalCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10057, 10001, 'Navicat Monitor requires ', 'https://video.myam.info/ToysGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10058, 10003, 'Import Wizard allows ', 'https://video.sy7.org/CellPhonesAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10059, 10002, 'Success consists of going ', 'https://video.itsuki521.net/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10060, 10003, 'It wasn’t raining when ', 'https://video.hsuankwokkuen1970.org/PetSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10061, 10003, 'Remember that failure ', 'http://video.cht.us/CenturionGardenOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10062, 10003, 'The Synchronize to Database ', 'https://video.nakayama17.biz/Baby');
|
||||||
|
INSERT INTO `t_video` VALUES (10063, 10003, 'There is no way to happiness. ', 'http://video.albjohnson.net/HealthBabyCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10064, 10003, 'SQL Editor allows you ', 'http://video.kasumiarai.co.jp/ClothingShoesandJewelry');
|
||||||
|
INSERT INTO `t_video` VALUES (10065, 10001, 'Navicat allows you to ', 'https://video.parker621.com/VideoGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10066, 10001, 'SQL Editor allows you ', 'http://video.sato1222.co.jp/MusicalInstrument');
|
||||||
|
INSERT INTO `t_video` VALUES (10067, 10003, 'Difficult circumstances ', 'http://video.yli614.us/CDsVinyl');
|
||||||
|
INSERT INTO `t_video` VALUES (10068, 10003, 'It wasn’t raining when ', 'http://video.miliksun.net/CellPhonesAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10069, 10003, 'In a Telnet session, ', 'https://video.debrama.cn/AutomotivePartsAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10070, 10001, 'If opportunity doesn’t ', 'http://video.eitamatsu.org/BaggageTravelEquipment');
|
||||||
|
INSERT INTO `t_video` VALUES (10071, 10003, 'Typically, it is employed ', 'http://video.jamesaguilar.org/Baby');
|
||||||
|
INSERT INTO `t_video` VALUES (10072, 10002, 'I will greet this day ', 'https://video.aokimis.com/Baby');
|
||||||
|
INSERT INTO `t_video` VALUES (10073, 10002, 'The repository database ', 'https://video.kasumiwa2003.cn/ToysGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10074, 10001, 'In the middle of winter ', 'https://video.phillipsj.cn/CenturionGardenOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10075, 10001, 'Difficult circumstances ', 'https://video.lli627.jp/SportsOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10076, 10001, 'It wasn’t raining when ', 'http://video.nanaminishimura7.xyz/Handcrafts');
|
||||||
|
INSERT INTO `t_video` VALUES (10077, 10001, 'A query is used to extract ', 'http://video.hasegak925.us/HouseholdKitchenAppliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10078, 10003, 'The Information Pane ', 'http://video.takasumi.jp/FilmSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10079, 10003, 'Always keep your eyes ', 'https://video.huimeicho75.info/CenturionGardenOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10080, 10002, 'In the Objects tab, you ', 'https://video.ashley66.com/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10081, 10002, 'You must be the change ', 'http://video.anqiwe.info/CDsVinyl');
|
||||||
|
INSERT INTO `t_video` VALUES (10082, 10003, 'A man is not old until ', 'http://video.miuraitsuki.xyz/HealthBabyCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10083, 10002, 'In the middle of winter ', 'http://video.sad.biz/HealthBabyCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10084, 10003, 'Navicat Monitor can be ', 'http://video.sm513.xyz/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10085, 10001, 'Flexible settings enable ', 'http://video.rihi.xyz/PetSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10086, 10003, 'It provides strong authentication ', 'https://video.weddie.biz/ClothingShoesandJewelry');
|
||||||
|
INSERT INTO `t_video` VALUES (10087, 10002, 'It provides strong authentication ', 'http://video.tsand.com/Baby');
|
||||||
|
INSERT INTO `t_video` VALUES (10088, 10001, 'In the middle of winter ', 'http://video.matsusakura.org/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10089, 10002, 'Instead of wondering ', 'http://video.ayato129.com/ClothingShoesandJewelry');
|
||||||
|
INSERT INTO `t_video` VALUES (10090, 10002, 'In a Telnet session, ', 'https://video.ngliksun44.net/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10091, 10001, 'In the middle of winter ', 'https://video.lanf80.cn/Books');
|
||||||
|
INSERT INTO `t_video` VALUES (10092, 10003, 'Genius is an infinite ', 'http://video.wp9.co.jp/Baby');
|
||||||
|
INSERT INTO `t_video` VALUES (10093, 10003, 'A man’s best friends ', 'https://video.tangcm1956.net/AppsGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10094, 10003, 'Navicat provides powerful ', 'http://video.mingyung2018.com/HouseholdKitchenAppliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10095, 10002, 'Monitored servers include ', 'https://video.wl01.net/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10096, 10001, 'Secure SHell (SSH) is ', 'https://video.yu713.info/PetSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10097, 10002, 'Navicat Monitor requires ', 'https://video.fongchiming901.biz/SportsOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10098, 10002, 'In other words, Navicat ', 'https://video.jose17.co.jp/Food');
|
||||||
|
INSERT INTO `t_video` VALUES (10099, 10003, 'A comfort zone is a beautiful ', 'https://video.xiayuni.biz/FilmSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10100, 10001, 'There is no way to happiness. ', 'http://video.mo1997.xyz/Beauty');
|
||||||
|
INSERT INTO `t_video` VALUES (10101, 10001, 'SSH serves to prevent ', 'http://video.lsha6.us/CenturionGardenOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10102, 10003, 'It can also manage cloud ', 'http://video.txiuy51.jp/Beauty');
|
||||||
|
INSERT INTO `t_video` VALUES (10103, 10003, 'If you wait, all that ', 'http://video.arthurmo.biz/CenturionGardenOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10104, 10001, 'The first step is as good as half over.', 'http://video.kwokyin306.org/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10105, 10003, 'Remember that failure ', 'http://video.qiuzit4.us/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10106, 10002, 'Navicat Monitor requires ', 'http://video.ricet.jp/HouseholdKitchenAppliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10107, 10002, 'To open a query using ', 'https://video.hashino.us/Others');
|
||||||
|
INSERT INTO `t_video` VALUES (10108, 10003, 'The Synchronize to Database ', 'http://video.nelsondavid10.xyz/ToysGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10109, 10003, 'Genius is an infinite ', 'https://video.lauwl1958.info/MusicalInstrument');
|
||||||
|
INSERT INTO `t_video` VALUES (10110, 10002, 'Navicat Monitor is a ', 'https://video.jia915.co.jp/HealthBabyCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10111, 10003, 'The first step is as good as half over.', 'https://video.sanakayama.xyz/BeautyPersonalCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10112, 10001, 'Export Wizard allows ', 'https://video.watam.co.jp/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10113, 10001, 'Remember that failure ', 'http://video.ntsub.biz/CellPhonesAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10114, 10001, 'Secure Sockets Layer(SSL) ', 'http://video.tsubas.us/FilmSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10115, 10001, 'You will succeed because ', 'https://video.moralrub.cn/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10116, 10001, 'If you wait, all that ', 'http://video.kathreynolds.biz/Appliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10117, 10003, 'If the Show objects under ', 'https://video.rche.us/ClothingShoesandJewelry');
|
||||||
|
INSERT INTO `t_video` VALUES (10118, 10002, 'After logged in the Navicat ', 'http://video.sefukud3.biz/CDsVinyl');
|
||||||
|
INSERT INTO `t_video` VALUES (10119, 10002, 'The reason why a great ', 'https://video.yinchiehlun.jp/CollectiblesFineArt');
|
||||||
|
INSERT INTO `t_video` VALUES (10120, 10001, 'A query is used to extract ', 'http://video.jialungu.xyz/CDsVinyl');
|
||||||
|
INSERT INTO `t_video` VALUES (10121, 10001, 'To clear or reload various ', 'http://video.soto5.cn/SportsOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10122, 10001, 'How we spend our days ', 'http://video.shingkm.xyz/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10123, 10001, 'A man is not old until ', 'https://video.karenbryant.com/ToysGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10124, 10001, 'You will succeed because ', 'http://video.yanshih4.jp/BaggageTravelEquipment');
|
||||||
|
INSERT INTO `t_video` VALUES (10125, 10003, 'SQL Editor allows you ', 'http://video.fskwok4.xyz/SportsOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10126, 10002, 'To open a query using ', 'https://video.chenrich.cn/VideoGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10127, 10003, 'Always keep your eyes ', 'http://video.hyliao6.cn/HouseholdKitchenAppliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10128, 10003, 'You will succeed because ', 'https://video.mao45.org/CellPhonesAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10129, 10001, 'I may not have gone where ', 'http://video.oghikari.net/Books');
|
||||||
|
INSERT INTO `t_video` VALUES (10130, 10003, 'It provides strong authentication ', 'https://video.onhaz2.org/VideoGames');
|
||||||
|
INSERT INTO `t_video` VALUES (10131, 10003, 'Success consists of going ', 'http://video.rikuwa.info/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10132, 10002, 'The repository database ', 'https://video.yuna9.info/AutomotivePartsAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10133, 10002, 'All the Navicat Cloud ', 'https://video.johnngar.com/Beauty');
|
||||||
|
INSERT INTO `t_video` VALUES (10134, 10001, 'Export Wizard allows ', 'http://video.zyuan.com/HealthBabyCare');
|
||||||
|
INSERT INTO `t_video` VALUES (10135, 10003, 'The Information Pane ', 'https://video.xuerui9.biz/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10136, 10003, 'The Main Window consists ', 'https://video.ruixu.xyz/ArtsHandicraftsSewing');
|
||||||
|
INSERT INTO `t_video` VALUES (10137, 10001, 'In the middle of winter ', 'https://video.wstang.co.jp/CenturionGardenOutdoor');
|
||||||
|
INSERT INTO `t_video` VALUES (10138, 10003, 'If the plan doesn’t ', 'https://video.mc93.us/BaggageTravelEquipment');
|
||||||
|
INSERT INTO `t_video` VALUES (10139, 10002, 'It can also manage cloud ', 'https://video.ntingfung.info/ToolsHomeDecoration');
|
||||||
|
INSERT INTO `t_video` VALUES (10140, 10001, 'If the Show objects under ', 'http://video.myunxi43.info/Handcrafts');
|
||||||
|
INSERT INTO `t_video` VALUES (10141, 10001, 'If it scares you, it ', 'http://video.endh54.xyz/CellPhonesAccessories');
|
||||||
|
INSERT INTO `t_video` VALUES (10142, 10002, 'The Information Pane ', 'http://video.takwahmok9.us/IndustrialScientificSupplies');
|
||||||
|
INSERT INTO `t_video` VALUES (10143, 10002, 'To connect to a database ', 'http://video.miuramomoe.cn/Appliances');
|
||||||
|
INSERT INTO `t_video` VALUES (10144, 10002, 'Navicat is a multi-connections ', 'http://video.lishiha.net/Appliances');
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### 题目
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 答案
|
||||||
|
|
||||||
|
```sql
|
||||||
|
#1
|
||||||
|
CREATE TABLE t_teacher(
|
||||||
|
id INT(8) PRIMARY KEY,
|
||||||
|
`name` VARCHAR(10),
|
||||||
|
nikename VARCHAR(20),
|
||||||
|
introduce text
|
||||||
|
);
|
||||||
|
|
||||||
|
#2
|
||||||
|
INSERT INTO t_student()
|
||||||
|
VALUES(10101, '王梓星', 'username123', 'password123');
|
||||||
|
|
||||||
|
#3
|
||||||
|
DELETE FROM t_course
|
||||||
|
WHERE id = 10004;
|
||||||
|
|
||||||
|
#4
|
||||||
|
UPDATE t_video v
|
||||||
|
SET v.link = 'www.shipin.mp4'
|
||||||
|
WHERE v.id = 10005;
|
||||||
|
|
||||||
|
#5 tj11
|
||||||
|
SELECT COUNT(*) 'total_students'
|
||||||
|
FROM t_student;
|
||||||
|
|
||||||
|
#6
|
||||||
|
SELECT v.id '视频编号', v.title '标题', v.link '链接地址'
|
||||||
|
FROM t_video v, t_course c
|
||||||
|
WHERE v.c_id = c.id AND c.`name` = '语文';
|
||||||
|
|
||||||
|
#7
|
||||||
|
CREATE VIEW v_education AS
|
||||||
|
SELECT s.`name` '学生姓名', c.`name` '课程名称', l.`schedule` '学习进度', l.createtime '创建时间'
|
||||||
|
FROM t_student s, t_learn l, t_course c
|
||||||
|
WHERE s.id = l.s_id AND l.c_id = c.id;
|
||||||
|
|
||||||
|
#8
|
||||||
|
CREATE TRIGGER tri_insert_student_learn
|
||||||
|
AFTER INSERT ON t_student
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO t_learn (s_id, c_id, schedule, createtime)
|
||||||
|
VALUES (NEW.id, 10001, 0, '2025-01-01');
|
||||||
|
END
|
||||||
|
|
||||||
|
#9
|
||||||
|
CREATE PROCEDURE `sp_get_student_courses`(
|
||||||
|
IN in_student_id INT,
|
||||||
|
OUT out_course_count INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(DISTINCT c_id) INTO out_course_count
|
||||||
|
FROM t_learn
|
||||||
|
WHERE s_id = in_student_id ;
|
||||||
|
END
|
||||||
|
```
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
CREATE PROCEDURE `sp_get_student_courses`(
|
||||||
|
IN 【 】 INT,
|
||||||
|
【 】 out_course_count INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(DISTINCT c_id) 【 】 out_course_count
|
||||||
|
FROM t_learn
|
||||||
|
WHERE s_id = 【 】 ;
|
||||||
|
END
|
||||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
|||||||
|
CREATE 【 】 tri_insert_student_learn
|
||||||
|
AFTER 【 】 ON t_student
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
INSERT 【 】 t_learn (s_id, c_id, schedule, createtime)
|
||||||
|
VALUES (【 】, 10001, 0, '2025-01-01');
|
||||||
|
END
|
||||||
+1460
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
@@ -1 +1 @@
|
|||||||

|

|
||||||
|
|||||||
+1035
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,47 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
题目:在此程序中,函数fun 的功能是:将十进制正整数m 转换成k(1<k<26)进制
|
||||||
|
数,并按位输出。例如,若输入8 和2,则应输出1000
|
||||||
|
(即十进制数8 转换成二进制表示是1000)。
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,不能定义新变量。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
// 函数声明
|
||||||
|
void fun(int m, int k);
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int m, k;
|
||||||
|
printf("【请输入十进制正整数m 和进制k(1 < k < 26):】");
|
||||||
|
scanf("%d %d", &m, &k);
|
||||||
|
if (k <= 1 || k >= 26)
|
||||||
|
{
|
||||||
|
printf("错误:k 的值必须在 2 到 25 之间。\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
fun(m, k);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
void fun(int m, int k)
|
||||||
|
{
|
||||||
|
char result[65];
|
||||||
|
int remainder, i;
|
||||||
|
int index = 63;
|
||||||
|
result[64] = '\0';
|
||||||
|
/**********Program**********/
|
||||||
|
while(m>0){
|
||||||
|
if(m%k<9){
|
||||||
|
result[index--] = m%k +48;
|
||||||
|
}else{
|
||||||
|
result[index--] = m%k -10+65;
|
||||||
|
}
|
||||||
|
m/=k;
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
for(;index <65;index++){
|
||||||
|
printf("%c",result[index]);
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
题目:键盘输入一个整数n,由这n 个人围成一圈,顺序排号。从第一个人开始报数
|
||||||
|
(从1 到3 报数),凡报到3 的人退出圈子,问最后留下的是原来第几号的那位
|
||||||
|
输入输出如下
|
||||||
|
【请输入整数n: 】99
|
||||||
|
最后留下的是原来第88 号的那位
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,函数中所需变量根据需要自定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
int josephus(int n)
|
||||||
|
{
|
||||||
|
/**********Program**********/
|
||||||
|
int a[n],i,count = 0,k=0;
|
||||||
|
i=n-1;
|
||||||
|
while(i>=0){
|
||||||
|
a[i]=1;
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
while(count<n){
|
||||||
|
if(a[i]!= 0){
|
||||||
|
k++;
|
||||||
|
if(k%3 == 0){
|
||||||
|
a[i] = 0;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i=(i+1)%n;
|
||||||
|
}
|
||||||
|
return i;
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
int result;
|
||||||
|
printf("【请输入整数n: 】");
|
||||||
|
scanf("%d", &n);
|
||||||
|
result = josephus(n);
|
||||||
|
printf("最后留下的是原来第%d 号的那位\n", result);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
请编写函数 fun, 函数的功能是: 移动一维数组中的内容; 若数组中有 n 个整数,
|
||||||
|
要求把下标从 0 到 p(含 p,p 小于等于 n-1 )的数组元素平移到数组的最后,最后
|
||||||
|
输出移动后的数组。
|
||||||
|
示例:
|
||||||
|
【请输入数组元素的个数: 】10
|
||||||
|
【请输入10 个整数:】1 2 3 4 5 6 7 8 9 10
|
||||||
|
【请输入p 的值 (p <= 9):】 5
|
||||||
|
【移动后的数组为: 】7 8 9 10 1 2 3 4 5 6
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
void fun(int *w, int p, int n)
|
||||||
|
{
|
||||||
|
int temp[p + 1];
|
||||||
|
/**********Program**********/
|
||||||
|
int i,k=0;
|
||||||
|
for(i=0;i<p+1;i++){
|
||||||
|
temp[i] = w[i];
|
||||||
|
}
|
||||||
|
for(;i<n;i++){
|
||||||
|
w[k++]=w[i];
|
||||||
|
}
|
||||||
|
for(i=0;k<n;k++){
|
||||||
|
w[k]=temp[i++];
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n, p;
|
||||||
|
printf("【请输入数组元素的个数: 】");
|
||||||
|
scanf("%d", &n);
|
||||||
|
int a[n];
|
||||||
|
printf("【请输入%d 个整数:】", n);
|
||||||
|
for (int i = 0; i < n; i++)
|
||||||
|
{
|
||||||
|
scanf("%d", &a[i]);
|
||||||
|
}
|
||||||
|
printf("【请输入p 的值 (p <= %d): 】", n - 1);
|
||||||
|
scanf("%d", &p);
|
||||||
|
fun(a, p, n);
|
||||||
|
printf("【移动后的数组为: 】");
|
||||||
|
for (int i = 0; i < n; i++)
|
||||||
|
{
|
||||||
|
printf("%d ", a[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
编写一个 C 语言程序,输入由中括号 [数字和小写字母]组成且无中括号嵌套的字
|
||||||
|
符串。规则如下:[nx](n 为正整数,x 为小写字母)表示将 x 重复 n 次;[nxy]
|
||||||
|
(n 为正整数,x、y 为小写字母)表示将 xy 重复 n 次。实现 fun 函数对输入
|
||||||
|
字符串解码并生成原始字符串。
|
||||||
|
示例1:
|
||||||
|
【请输入符合规则的字符串:】[5wh]
|
||||||
|
【原始字符串:】whwhwhwhwh
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数 `main` 或其它函数中给出的内容,
|
||||||
|
仅在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
char *fun(char input[])
|
||||||
|
{
|
||||||
|
int len = strlen(input);
|
||||||
|
char *output = (char *)malloc(1000 * sizeof(char));
|
||||||
|
if (output == NULL)
|
||||||
|
{
|
||||||
|
printf("内存分配失败!\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
int outputIndex = 0;
|
||||||
|
/**********Program**********/
|
||||||
|
int i, s=0, t=1, j, k;
|
||||||
|
for(i=0;i<len;i++){
|
||||||
|
if(input[i] == '['){
|
||||||
|
s = 0;
|
||||||
|
t = 1;
|
||||||
|
while(input[i+1] >= '0' && input[i+1] <= '9'){
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
while(input[i] != '['){
|
||||||
|
s+=(input[i]-48)*t;
|
||||||
|
t*=10;
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
while(input[i] >= '0' && input[i] <= '9') i++;
|
||||||
|
for(j=0;j<s;j++){
|
||||||
|
k = i;
|
||||||
|
while(input[k] != ']'){
|
||||||
|
output[outputIndex++] = input[k];
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
output[outputIndex] = '\0';
|
||||||
|
/********** End **********/
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char input[1000];
|
||||||
|
printf("【请输入符合规则的字符串:】\n");
|
||||||
|
scanf("%s", input);
|
||||||
|
char *result = fun(input);
|
||||||
|
if (result != NULL)
|
||||||
|
{
|
||||||
|
printf("【原始字符串:】%s\n", result);
|
||||||
|
free(result);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
键盘输入五个正整数,编写函数求其中偶数之和,并输出结果
|
||||||
|
示例:
|
||||||
|
【请输入五个正整数:】100 222 656 899 65
|
||||||
|
【这五个正整数中的偶数之和为:】978
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
int sum_of_even(int arr[], int size);
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int numbers[5];
|
||||||
|
int i;
|
||||||
|
int even_sum;
|
||||||
|
printf("【请输入五个正整数:】");
|
||||||
|
for (i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
if (scanf("%d", &numbers[i]) != 1)
|
||||||
|
{
|
||||||
|
printf("输入有误,请确保输入了五个整数。\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (numbers[i] <= 0)
|
||||||
|
{
|
||||||
|
printf("输入有误!请确保输入的是正数。\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
even_sum = sum_of_even(numbers, 5);
|
||||||
|
printf("【这五个正整数中的偶数之和为:】%d\n", even_sum);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int sum_of_even(int arr[], int size)
|
||||||
|
{
|
||||||
|
int sum = 0;
|
||||||
|
int i;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=0;i<size;i++){
|
||||||
|
if(arr[i]%2 == 0){
|
||||||
|
sum+=arr[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:将字符串中的前
|
||||||
|
导*号全部
|
||||||
|
删除, 中间和尾部的* 号不删除。例如, 字符串中的内
|
||||||
|
容:"*******A*BC*DEF*G****",删除
|
||||||
|
后字符串编写函中的内容应当是:"A*BC*DEF*G****"编写函数时,不得使用C 语
|
||||||
|
言提供的字符
|
||||||
|
串函数。
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动主函数main 和其它函数中的任何内容,
|
||||||
|
仅在函数fun 的花括号中填入你编写的若干语句,根据情况可以定义新变量。
|
||||||
|
根据情况可以自定义变量
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
void fun(char *a)
|
||||||
|
{
|
||||||
|
/**********Program**********/
|
||||||
|
char *p;
|
||||||
|
p=a;
|
||||||
|
while(*p == '*'){
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
while(*p != '\0'){
|
||||||
|
*(a++) = *(p++);
|
||||||
|
}
|
||||||
|
*a = '\0';
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
char s[81];
|
||||||
|
printf("【Enter a string:】\n");
|
||||||
|
gets(s);
|
||||||
|
fun(s);
|
||||||
|
printf("【The string after deleted:】\n");
|
||||||
|
puts(s);
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
编写函数找出能同时满足用3 除余2,用5 除余3,用7 除余2 的所有整数并输出。
|
||||||
|
输入输出如下:
|
||||||
|
【请输入区间的起始值: 】1
|
||||||
|
【请输入区间的结束值:】 100
|
||||||
|
23
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动主函数main 和其它函数中的任何内容,
|
||||||
|
仅在函数isMeetCondition 的花括号中填入你编写的若干语句,根据情况可以定义新变量。
|
||||||
|
根据情况可以自定义变量
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
int isMeetCondition(int num);
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int start, end;
|
||||||
|
int i;
|
||||||
|
printf("【请输入区间的起始值: 】");
|
||||||
|
scanf("%d", &start);
|
||||||
|
printf("【请输入区间的结束值: 】");
|
||||||
|
scanf("%d", &end);
|
||||||
|
for (i = start; i <= end; i++)
|
||||||
|
{
|
||||||
|
if (isMeetCondition(i))
|
||||||
|
{
|
||||||
|
printf("%d\n", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int isMeetCondition(int num)
|
||||||
|
{
|
||||||
|
/**********Program**********/
|
||||||
|
if(num%3==2&&num%5==3&&num%7==2){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
定义一个函数判断一个字符串是否是另一个字符串的子字符串,要求用指针实现。
|
||||||
|
输入输出如下:
|
||||||
|
【请输入第一个字符串:】abcdefg1234qwert
|
||||||
|
【请输入第二个字符串:】4q
|
||||||
|
字符串'4q'是字符串'abcdefg1234qwert'的子字符串
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
// 函数声明,用于判断子字符串
|
||||||
|
int isSubstring(char *str1, char *str2);
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char str1[100], str2[100];
|
||||||
|
printf("【请输入第一个字符串:】");
|
||||||
|
gets(str1);
|
||||||
|
printf("【请输入第二个字符串:】");
|
||||||
|
gets(str2);
|
||||||
|
if (isSubstring(str1, str2))
|
||||||
|
{
|
||||||
|
printf("字符串'%s'是字符串'%s'的子字符串\n", str2, str1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("字符串'%s'不是字符串'%s'的子字符串\n", str2, str1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int isSubstring(char *str1, char *str2)
|
||||||
|
{
|
||||||
|
int len1 = strlen(str1);
|
||||||
|
int len2 = strlen(str2);
|
||||||
|
int i, j;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=0;i<len1;i++){
|
||||||
|
j=0;
|
||||||
|
while(str1[i] == str2[j] && str2[j] != '\0'){
|
||||||
|
i++;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
if(j != 0){
|
||||||
|
i-=j;
|
||||||
|
}
|
||||||
|
if(str2[j] == '\0'){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
题目:随机输入一字符串(不包含空格,长度不超过100),删除字符串中的数字
|
||||||
|
字符后输出。
|
||||||
|
例如
|
||||||
|
【请输入字符串:】I will graduate from high school in June 2025
|
||||||
|
【去掉数字后的字符串为:】I will graduate from high school in June
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char a[100], b[100];
|
||||||
|
int l, i, j;
|
||||||
|
printf("【请输入字符串:】");
|
||||||
|
gets(a);
|
||||||
|
l = strlen(a);
|
||||||
|
j = 0;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=0;i<l;i++){
|
||||||
|
if(a[i]<'0'||a[i]>'9'){
|
||||||
|
b[j++] = a[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
b[j] = '\0';
|
||||||
|
printf("【去掉数字后的字符串为:】");
|
||||||
|
puts(b);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
题目:以下程序的功能是删去一维数组str 中所有相同的数,使之只剩一个。数组
|
||||||
|
中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
|
||||||
|
若一维数组中的数据是:
|
||||||
|
2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 9
|
||||||
|
结果是:2 3 4 5 6 7 8 9
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
int del(int str[], int n)
|
||||||
|
{
|
||||||
|
int i, j = 1;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=2;i<n;i++){
|
||||||
|
if(str[i] != str[j]){
|
||||||
|
str[++j] = str[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
return j;
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int str[] = {2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9};
|
||||||
|
int i, m, n = sizeof(str) / sizeof(int);
|
||||||
|
for (i = 0; i < n; i++)
|
||||||
|
printf("%d ", str[i]);
|
||||||
|
m = del(str, n);
|
||||||
|
printf("\n");
|
||||||
|
for (i = 0; i < m; i++)
|
||||||
|
printf("%d ", str[i]);
|
||||||
|
printf("\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*---------------------------------------------------------------------
|
||||||
|
程序设计
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
王老师通过课题专利研发赚到了人生的第一个100 万,他存入银行账户用于理财,
|
||||||
|
每年可以
|
||||||
|
获得4%的收益,在每年的最后一天,他会取出10 万来消费,剩下的继续理财。编
|
||||||
|
写程序计算
|
||||||
|
过多少年以后,账户上的钱会被取完(使用do....while)。
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
---------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int money = 100;
|
||||||
|
int year = 1;
|
||||||
|
/**********Program**********/
|
||||||
|
do{
|
||||||
|
money = money *(1+0.04);
|
||||||
|
money-=10;
|
||||||
|
year++;
|
||||||
|
}while(money > 0);
|
||||||
|
/********** End **********/
|
||||||
|
printf("%d 年后账户上的钱会被花完", year);
|
||||||
|
printf("\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
/*---------------------------------------------------------------------
|
||||||
|
程序设计
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
通过指针传递实现将一数组中的数据按相反顺序存放。
|
||||||
|
例如:输入20 24 4 13 11
|
||||||
|
输出:11 13 4 24 20
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
---------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
void sort(int *, int);
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
int a[5], i;
|
||||||
|
for (i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
scanf("%d,", &a[i]);
|
||||||
|
}
|
||||||
|
sort(a, 5);
|
||||||
|
for (i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
printf("%d ", a[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
void sort(int *p, int n)
|
||||||
|
{
|
||||||
|
int i, j, temp;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=0,j=n-1;i<j;i++,j--){
|
||||||
|
temp = p[i];
|
||||||
|
p[i] = p[j];
|
||||||
|
p[j] = temp;
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
题目:编写函数实现输入一串字符串,删除字符串中的重复的字符,然后输出新的
|
||||||
|
字符串(重复字符保留第一次出现的字符)
|
||||||
|
输入输出如下所示
|
||||||
|
请输入一串字符串: mn,mn.,mzxcv,nkh021215468796468765465
|
||||||
|
去除重复字符后的字符串为: mn,.zxcvkh021546879
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
void removeDuplicates(char *str);
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char str[100];
|
||||||
|
printf("【请输入一个字符串: 】");
|
||||||
|
fgets(str, sizeof(str), stdin);
|
||||||
|
str[strcspn(str, "\n")] = 0;
|
||||||
|
removeDuplicates(str);
|
||||||
|
printf("【去除重复字符后的字符串为:】 %s\n", str);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
void removeDuplicates(char *str)
|
||||||
|
{
|
||||||
|
int seen[256] = {0};
|
||||||
|
int writeIdx = 0;
|
||||||
|
int i;
|
||||||
|
int len = strlen(str);
|
||||||
|
if (str == NULL)
|
||||||
|
return;
|
||||||
|
if (len <= 1)
|
||||||
|
return;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=0;i<len-1;i++){
|
||||||
|
for(writeIdx=i+1;writeIdx<len;writeIdx++){
|
||||||
|
if(str[i] == str[writeIdx]){
|
||||||
|
seen[writeIdx] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writeIdx = 0;
|
||||||
|
for(i=0;i<len;i++){
|
||||||
|
if(seen[i]==0){
|
||||||
|
str[writeIdx++] = str[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
str[writeIdx] = '\0';
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
题目:编写函数实现用除二取余的方法,把任意一个十进制正数的二进制序列输出
|
||||||
|
(不考虑溢出)
|
||||||
|
程序输入输出如下所示
|
||||||
|
Enter a decimal number: 2
|
||||||
|
The binary representation is: 10
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
void decimalToBinary(int decimal)
|
||||||
|
{
|
||||||
|
int remainder;
|
||||||
|
int len = 0;
|
||||||
|
char binary[32];
|
||||||
|
int i;
|
||||||
|
if (decimal == 0)
|
||||||
|
{
|
||||||
|
printf("0");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=0;decimal>0;i++,decimal/=2){
|
||||||
|
binary[i] = decimal%2+48;
|
||||||
|
}
|
||||||
|
binary[i] = '\0';
|
||||||
|
i--;
|
||||||
|
for(;i>len;i--){
|
||||||
|
remainder = binary[len];
|
||||||
|
binary[len] = binary[i];
|
||||||
|
binary[i] = remainder;
|
||||||
|
len++;
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
printf("%s\n", binary);
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int number;
|
||||||
|
printf("【Enter a decimal number: 】");
|
||||||
|
scanf("%d", &number);
|
||||||
|
printf("【The binary representation is: 】");
|
||||||
|
decimalToBinary(number);
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
题目:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第
|
||||||
|
二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩
|
||||||
|
下的一半零一个。直到最后一天早上想再吃时,见只剩下一个桃子了。通过输入来
|
||||||
|
控制吃桃的最后一天,编写函数求第一天共摘了多少桃子。
|
||||||
|
输入输出如下所示:
|
||||||
|
【输入猴子还剩1 个桃子的最后一天: 】10
|
||||||
|
猴子第一天摘了1534 个桃子
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
int countPeaches(int lastDay)
|
||||||
|
{
|
||||||
|
int peaches = 1;
|
||||||
|
int day;
|
||||||
|
/**********Program**********/
|
||||||
|
day = lastDay;
|
||||||
|
while(day>1){
|
||||||
|
peaches = (peaches+1)*2;
|
||||||
|
day--;
|
||||||
|
}
|
||||||
|
return peaches;
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int lastDay;
|
||||||
|
int totalPeaches;
|
||||||
|
printf("【输入猴子还剩1 个桃子的最后一天:】 ");
|
||||||
|
scanf("%d", &lastDay);
|
||||||
|
totalPeaches = countPeaches(lastDay);
|
||||||
|
printf("猴子第一天摘了%d 个桃子\n", totalPeaches);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
题目:一瓶汽水一元,两个空瓶子可以换一瓶汽水,输入购买汽水的金额,编写函
|
||||||
|
数计算出一共可以喝多少瓶汽水
|
||||||
|
输入输出如下所示:
|
||||||
|
【请输入购买汽水的金额(元):】 3
|
||||||
|
总共可以喝 5 瓶汽水
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
int totalBottles(int money)
|
||||||
|
{
|
||||||
|
int totalBottlesDrank = 0;
|
||||||
|
int boughtBottles = money;
|
||||||
|
int newBottles;
|
||||||
|
/**********Program**********/
|
||||||
|
totalBottlesDrank= money;
|
||||||
|
while(boughtBottles > 1){
|
||||||
|
boughtBottles-=2;
|
||||||
|
boughtBottles++;
|
||||||
|
totalBottlesDrank++;
|
||||||
|
}
|
||||||
|
return totalBottlesDrank;
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int money;
|
||||||
|
int result;
|
||||||
|
printf("【请输入购买汽水的金额(元): 】");
|
||||||
|
scanf("%d", &money);
|
||||||
|
result = totalBottles(money);
|
||||||
|
printf("总共可以喝 %d 瓶汽水\n", result);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
编写函数 fun, 函数 fun 的功能是:求出数组中最大数和次最大数,并把最大数
|
||||||
|
和 a[0]中的数对调、次最大数和 a[1]中的数对调,输出对调后的结果。
|
||||||
|
例如原数组为{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5},对调后的结果为9 6 4 1 5 3 2 1 5 3 5
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
void fun(int *a, int n)
|
||||||
|
{
|
||||||
|
int max_index = 0;
|
||||||
|
int second_max_index = 0;
|
||||||
|
int i;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=1;i<n;i++){
|
||||||
|
if(a[i]>a[max_index]){
|
||||||
|
max_index = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i=a[0];
|
||||||
|
a[0]=a[max_index];
|
||||||
|
a[max_index]=i;
|
||||||
|
second_max_index = 1;
|
||||||
|
for(i=1;i<n;i++){
|
||||||
|
if(a[i]>a[second_max_index]){
|
||||||
|
second_max_index = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i=a[1];
|
||||||
|
a[1]=a[second_max_index];
|
||||||
|
a[second_max_index]=i;
|
||||||
|
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
|
||||||
|
int size = sizeof(arr) / sizeof(arr[0]);
|
||||||
|
int i;
|
||||||
|
fun(arr, size);
|
||||||
|
printf("【Modified array: 】");
|
||||||
|
for (i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
printf("%d ", arr[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
+102
@@ -0,0 +1,102 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
请编写C 代码,完成计算数组 A 与数组 B 的对称差集(即只属于 A 或者只属
|
||||||
|
于 B 的元素)。提示:可以先将数组 A 和 B 变为递增排序,然后可以使用双指
|
||||||
|
针法来高效地找到它们的对称差集。
|
||||||
|
示例1
|
||||||
|
【请输入数组 A 的大小: 】5
|
||||||
|
【请输入数组 A 的 5 个元素: 】6 5 4 3 2
|
||||||
|
【请输入数组 B 的大小: 】4
|
||||||
|
【请输入数组 B 的 4 个元素: 】7 6 3 8
|
||||||
|
【数组 A 与数组 B 的对称差集为: 】2 4 5 7 8
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
void bubbleSort(int arr[], int size)
|
||||||
|
{
|
||||||
|
int i, j;
|
||||||
|
for (i = 0; i < size - 1; i++)
|
||||||
|
{
|
||||||
|
for (j = 0; j < size - i - 1; j++)
|
||||||
|
{
|
||||||
|
if (arr[j] > arr[j + 1])
|
||||||
|
{
|
||||||
|
// 交换 arr[j] 和 arr[j + 1]
|
||||||
|
int temp = arr[j];
|
||||||
|
arr[j] = arr[j + 1];
|
||||||
|
arr[j + 1] = temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int computeSymmetricDifference(int A[], int sizeA, int B[], int sizeB, int C[])
|
||||||
|
{
|
||||||
|
int i = 0, j = 0, k = 0;
|
||||||
|
/**********Program**********/
|
||||||
|
while(i<sizeA){
|
||||||
|
j=0;
|
||||||
|
while(j<sizeB){
|
||||||
|
if(A[i]==B[j]){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
if(j==sizeB){
|
||||||
|
C[k++]=A[i];
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
j=i=0;
|
||||||
|
while(j<sizeB){
|
||||||
|
i=0;
|
||||||
|
while(i<sizeA){
|
||||||
|
if(A[i]==B[j]){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if(i==sizeA){
|
||||||
|
C[k++]=B[j];
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
bubbleSort(C,k);
|
||||||
|
return k;
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int sizeA, sizeB;
|
||||||
|
int i;
|
||||||
|
printf("【请输入数组 A 的大小: 】");
|
||||||
|
scanf("%d", &sizeA);
|
||||||
|
int A[100];
|
||||||
|
printf("【请输入数组 A 的 %d 个元素: 】", sizeA);
|
||||||
|
for (i = 0; i < sizeA; i++)
|
||||||
|
{
|
||||||
|
scanf("%d", &A[i]);
|
||||||
|
}
|
||||||
|
printf("【请输入数组 B 的大小: 】");
|
||||||
|
scanf("%d", &sizeB);
|
||||||
|
int B[100];
|
||||||
|
printf("【请输入数组 B 的 %d 个元素: 】", sizeB);
|
||||||
|
for (i = 0; i < sizeB; i++)
|
||||||
|
{
|
||||||
|
scanf("%d", &B[i]);
|
||||||
|
}
|
||||||
|
int C[200]; // 假设结果数组最大长度为 200,为 A 和 B 长度之和
|
||||||
|
int diffSize = computeSymmetricDifference(A, sizeA, B, sizeB, C);
|
||||||
|
printf("【数组 A 与数组 B 的对称差集为: 】");
|
||||||
|
for (i = 0; i < diffSize; i++)
|
||||||
|
{
|
||||||
|
printf("%d ", C[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
函数 fun 的功能是: 将 输入的字符串中的字母转换为按字母序列的后续字母(但
|
||||||
|
Z 转换为 A, z 转换为 a),其它字符不变,最后输出转换后的字符串。
|
||||||
|
示例1:
|
||||||
|
【请输入一个字符串: 】12345QAZWSXrfvtgb!!@!@@¥
|
||||||
|
【转换后的字符串为: 】12345RBAXTYsgwuhc!!@!@@¥
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
void fun(char *str)
|
||||||
|
{
|
||||||
|
/**********Program**********/
|
||||||
|
char *p;
|
||||||
|
p=str;
|
||||||
|
while(*p != '\0'){
|
||||||
|
if(*p>='a'&&*p<='z'){
|
||||||
|
*p=((*p+1)<'z'?(*p+1):'a');
|
||||||
|
}
|
||||||
|
if(*p>='A'&&*p<='Z'){
|
||||||
|
*p=((*p+1)<'Z'?(*p+1):'A');
|
||||||
|
}
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char input[100];
|
||||||
|
printf("【请输入一个字符串: 】");
|
||||||
|
fgets(input, sizeof(input), stdin);
|
||||||
|
input[strcspn(input, "\n")] = '\0';
|
||||||
|
fun(input);
|
||||||
|
printf("【转换后的字符串为: 】%s\n", input);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
要求编写一个程序来计算给定整数的平方根的整数部分,功能类似于 C 语言标准
|
||||||
|
库中的 sqrt 函数,但仅返回整数部分结果。
|
||||||
|
示例1:
|
||||||
|
【请输入一个非负整数: 】12
|
||||||
|
【12 的平方根的整数部分是: 】3
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
int mySqrt(int x)
|
||||||
|
{
|
||||||
|
/**********Program**********/
|
||||||
|
int i;
|
||||||
|
for(i=1;;i++){
|
||||||
|
if(i*i==x){
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
if(i*i>x){
|
||||||
|
return i-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int num;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
printf("【请输入一个非负整数: 】");
|
||||||
|
if (scanf("%d", &num) != 1 || num < 0)
|
||||||
|
{
|
||||||
|
while (getchar() != '\n')
|
||||||
|
;
|
||||||
|
printf("输入无效,请输入一个非负整数。\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int sqrtResult = mySqrt(num);
|
||||||
|
printf("【%d 的平方根的整数部分是: 】%d\n", num, sqrtResult);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
编写一个 C 语言函数,函数接收一个整数数组 arr 以及数组的长度 size 作为参
|
||||||
|
数,使用 bool 类型返回该数组中是否存在重复的元素。在 main 函数中,输入多
|
||||||
|
个正整数(输入非数字字符表示输入结束)并调用该函数,根据返回结果输出相应
|
||||||
|
的提示信息。
|
||||||
|
示例:
|
||||||
|
【请输入多个整数(输入非数字字符结束输入):】1 2 3 4 5 5 6 a
|
||||||
|
数组中存在重复元素。
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
bool hasDuplicates(int arr[], int size)
|
||||||
|
{
|
||||||
|
/**********Program**********/
|
||||||
|
int i,j;
|
||||||
|
for(i=0;i<size-1;i++){
|
||||||
|
for(j=i+1;j<size;j++){
|
||||||
|
if(arr[i]==arr[j]){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int capacity = 10;
|
||||||
|
int *arr = (int *)malloc(capacity * sizeof(int));
|
||||||
|
if (arr == NULL)
|
||||||
|
{
|
||||||
|
printf("内存分配失败!\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
int size = 0;
|
||||||
|
int num;
|
||||||
|
printf("【请输入多个整数(输入非数字字符结束输入):】");
|
||||||
|
while (scanf("%d", &num) == 1)
|
||||||
|
{
|
||||||
|
if (size == capacity)
|
||||||
|
{
|
||||||
|
capacity *= 2;
|
||||||
|
arr = (int *)realloc(arr, capacity * sizeof(int));
|
||||||
|
if (arr == NULL)
|
||||||
|
{
|
||||||
|
printf("内存分配失败!\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
arr[size++] = num;
|
||||||
|
}
|
||||||
|
while (getchar() != '\n');
|
||||||
|
if (hasDuplicates(arr, size))
|
||||||
|
{
|
||||||
|
printf("数组中存在重复元素。\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("数组中不存在重复元素。\n");
|
||||||
|
}
|
||||||
|
free(arr);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
+100
@@ -0,0 +1,100 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
现在有一位赛车手要驾驶一台电动摩托车去完成多段赛程。这台电动摩托车的电
|
||||||
|
池电量存储
|
||||||
|
上限是 100 度电哦,它有一个标称的平均电耗,也就是每行驶 100 公里,就会消
|
||||||
|
耗 10 度
|
||||||
|
电。这里有个很重要的前提条件要大家牢记呀,每一段赛程的距离都是小于 600
|
||||||
|
公里的哦,
|
||||||
|
并且每次出发的时候,电动摩托车的电池都是充满电的状态呢。还有一个关键的规
|
||||||
|
则得注意
|
||||||
|
哦,如果电动摩托车到达某个地点之后,赛车手查看发现电池内剩余的电量低于电
|
||||||
|
池总电量
|
||||||
|
的 10%(也就是 100×10% = 10 度电或者更少啦),那这个时候就必须得在这个
|
||||||
|
地方给电
|
||||||
|
动摩托车充电了呢,请帮忙计算一下,这名驾驶员在赛程中的哪几段赛程前是需要
|
||||||
|
充电的。
|
||||||
|
示例1:
|
||||||
|
【请输入赛程段数:】
|
||||||
|
5
|
||||||
|
【请输入各段赛程距离,单位公里:】
|
||||||
|
380 200 390 400 300
|
||||||
|
【需要在以下几段赛程前充电:】
|
||||||
|
第 3 段赛程前
|
||||||
|
第 5 段赛程前
|
||||||
|
示例2:
|
||||||
|
【请输入赛程段数:】
|
||||||
|
4
|
||||||
|
【请输入各段赛程距离,单位公里:】
|
||||||
|
190 140 110 80
|
||||||
|
无需充电。
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h> // 引入stdlib.h 用于动态内存分配相关操作
|
||||||
|
#define TANK_CAPACITY 100 // 电池总容量(单位:度)
|
||||||
|
#define LOW_FUEL_LIMIT (0.10 * TANK_CAPACITY) // 低电量阈值(10%)
|
||||||
|
#define AVG_CONSUMPTION_PER_100KM 10 // 平均电耗(单位:度/百公里)
|
||||||
|
#define FUEL_CONSUMPTION_PER_KM (AVG_CONSUMPTION_PER_100KM / 100.0) // 每公里电耗(单位:度/公里)
|
||||||
|
int checkRefuelStops(int trips[], int count, int results[])
|
||||||
|
{
|
||||||
|
int refuel_count = 0;
|
||||||
|
double current_fuel = TANK_CAPACITY;
|
||||||
|
/**********Program**********/
|
||||||
|
int i;
|
||||||
|
for(i=0;i<count;i++){
|
||||||
|
current_fuel = current_fuel-FUEL_CONSUMPTION_PER_KM*trips[i];
|
||||||
|
if(current_fuel<=LOW_FUEL_LIMIT){
|
||||||
|
results[refuel_count++]=i+1;
|
||||||
|
current_fuel=TANK_CAPACITY - FUEL_CONSUMPTION_PER_KM*trips[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
return refuel_count;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int num_trips;
|
||||||
|
printf("【请输入赛程段数:】\n");
|
||||||
|
scanf("%d", &num_trips);
|
||||||
|
int *trips = (int *)malloc(num_trips * sizeof(int));
|
||||||
|
if (trips == NULL)
|
||||||
|
{
|
||||||
|
printf("内存分配失败!\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
printf("【请输入各段赛程距离,单位公里:】\n");
|
||||||
|
for (int i = 0; i < num_trips; ++i)
|
||||||
|
{
|
||||||
|
scanf("%d", &trips[i]);
|
||||||
|
}
|
||||||
|
int *results = (int *)malloc(num_trips * sizeof(int));
|
||||||
|
if (results == NULL)
|
||||||
|
{
|
||||||
|
printf("内存分配失败!\n");
|
||||||
|
free(trips);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
int refuel_count = checkRefuelStops(trips, num_trips, results);
|
||||||
|
if (refuel_count > 0)
|
||||||
|
{
|
||||||
|
printf("【需要在以下几段赛程前充电:】\n");
|
||||||
|
for (int i = 0; i < refuel_count; i++)
|
||||||
|
{
|
||||||
|
printf("第 %d 段赛程前\n", results[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("无需充电。\n");
|
||||||
|
}
|
||||||
|
free(trips);
|
||||||
|
free(results);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/*----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
编写一个 C 语言程序,输入由中括号 [数字和小写字母]组成且无中括号嵌套的字
|
||||||
|
符串。规则如下:[nx](n 为正整数,x 为小写字母)表示将 x 重复 n 次;[nxy]
|
||||||
|
(n 为正整数,x、y 为小写字母)表示将 xy 重复 n 次。实现 fun 函数对输入
|
||||||
|
字符串解码并生成原始字符串。
|
||||||
|
示例1:
|
||||||
|
【请输入符合规则的字符串:】[5wh]
|
||||||
|
【原始字符串:】whwhwhwhwh
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数 `main` 或其它函数中给出的内容,
|
||||||
|
仅在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
----------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
char *fun(char input[])
|
||||||
|
{
|
||||||
|
int len = strlen(input);
|
||||||
|
char *output = (char *)malloc(1000 * sizeof(char));
|
||||||
|
if (output == NULL)
|
||||||
|
{
|
||||||
|
printf("内存分配失败!\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
int outputIndex = 0;
|
||||||
|
/**********Program**********/
|
||||||
|
int i,s,t;
|
||||||
|
for(i=0;i<len;i++){
|
||||||
|
if(input[i]=='['){
|
||||||
|
i++;
|
||||||
|
s=0;
|
||||||
|
while(input[i] <'a'||input[i]>'z'){
|
||||||
|
s=s*10+(input[i] - 48);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(s>0){
|
||||||
|
t=i;
|
||||||
|
while(input[t] != ']'){
|
||||||
|
output[outputIndex++] = input[t++];
|
||||||
|
}
|
||||||
|
s--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
output[outputIndex] = '\0';
|
||||||
|
/********** End **********/
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char input[1000];
|
||||||
|
printf("【请输入符合规则的字符串:】\n");
|
||||||
|
scanf("%s", input);
|
||||||
|
char *result = fun(input);
|
||||||
|
if (result != NULL)
|
||||||
|
{
|
||||||
|
printf("【原始字符串:】%s\n", result);
|
||||||
|
free(result);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
【程序设计】
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
定义一个函数判断一个字符串是否是另一个字符串的子字符串,要求用指针实现。
|
||||||
|
输入输出如下:
|
||||||
|
【请输入第一个字符串:】abcdefg1234qwert
|
||||||
|
【请输入第二个字符串:】4q
|
||||||
|
字符串'4q'是字符串'abcdefg1234qwert'的子字符串
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
||||||
|
------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
// 函数声明,用于判断子字符串
|
||||||
|
int isSubstring(char *str1, char *str2);
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char str1[100], str2[100];
|
||||||
|
printf("【请输入第一个字符串:】");
|
||||||
|
gets(str1);
|
||||||
|
printf("【请输入第二个字符串:】");
|
||||||
|
gets(str2);
|
||||||
|
if (isSubstring(str1, str2))
|
||||||
|
{
|
||||||
|
printf("字符串'%s'是字符串'%s'的子字符串\n", str2, str1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("字符串'%s'不是字符串'%s'的子字符串\n", str2, str1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int isSubstring(char *str1, char *str2)
|
||||||
|
{
|
||||||
|
int len1 = strlen(str1);
|
||||||
|
int len2 = strlen(str2);
|
||||||
|
int i, j;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=0;i<len1;i++){
|
||||||
|
j=0;
|
||||||
|
while(str1[i] == str2[j]&&str2[j] != '\0'){
|
||||||
|
j++;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if(j != len2){
|
||||||
|
i-=j;
|
||||||
|
}
|
||||||
|
if(j == len2){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*---------------------------------------------------------------------
|
||||||
|
程序设计
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
王老师通过课题专利研发赚到了人生的第一个100 万,他存入银行账户用于理财,
|
||||||
|
每年可以
|
||||||
|
获得4%的收益,在每年的最后一天,他会取出10 万来消费,剩下的继续理财。编
|
||||||
|
写程序计算
|
||||||
|
过多少年以后,账户上的钱会被取完(使用do....while)。
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
---------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int money = 100;
|
||||||
|
int year = 1;
|
||||||
|
/**********Program**********/
|
||||||
|
do{
|
||||||
|
money = money *(1+0.04);
|
||||||
|
money-=10;
|
||||||
|
year++;
|
||||||
|
}while(money > 0);
|
||||||
|
/********** End **********/
|
||||||
|
printf("%d 年后账户上的钱会被花完", year);
|
||||||
|
printf("\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
/*---------------------------------------------------------------------
|
||||||
|
程序设计
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
通过指针传递实现将一数组中的数据按相反顺序存放。
|
||||||
|
例如:输入20 24 4 13 11
|
||||||
|
输出:11 13 4 24 20
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
|
||||||
|
在
|
||||||
|
Program-End 之间填入若干语句。
|
||||||
|
不要删除标志否则不得分。
|
||||||
|
不要修改或删除Program-End 之外的内容否则不得分。
|
||||||
|
---------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
void sort(int *, int);
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
int a[5], i;
|
||||||
|
for (i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
scanf("%d,", &a[i]);
|
||||||
|
}
|
||||||
|
sort(a, 5);
|
||||||
|
for (i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
printf("%d ", a[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
void sort(int *p, int n)
|
||||||
|
{
|
||||||
|
int i, j, temp;
|
||||||
|
/**********Program**********/
|
||||||
|
for(i=0,j=n-1;i<j;i++,j--){
|
||||||
|
temp = p[i];
|
||||||
|
p[i] = p[j];
|
||||||
|
p[j] = temp;
|
||||||
|
}
|
||||||
|
/********** End **********/
|
||||||
|
}
|
||||||
+113
@@ -0,0 +1,113 @@
|
|||||||
|
### 冒泡排序
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void bubblingSort(int *a, int n, int flag){
|
||||||
|
int i, j, t;
|
||||||
|
for(i=0;i<n-1;i++){
|
||||||
|
for(j=0;j<n-1-i;j++){
|
||||||
|
if(flag>0?a[j]>a[j+1]:a[j]<a[j+1]){
|
||||||
|
t = a[j];
|
||||||
|
a[j] = a[j+1];
|
||||||
|
a[j+1] = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void printArray(int *a, int n){
|
||||||
|
int i;
|
||||||
|
for(i=0;i<n;i++){
|
||||||
|
printf("%d ", a[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int a[] = {100, 1, 3, 2, 9, -1, 20, 30, 10, 50};
|
||||||
|
int n = sizeof(a)/4;
|
||||||
|
bubblingSort(a, n, 1);
|
||||||
|
printArray(a, n);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 选择排序
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void selectSort(int *a, int n, int flag){
|
||||||
|
int i, j, t;
|
||||||
|
for(i=0;i<n-1;i++){
|
||||||
|
for(j=i;j<n;j++){
|
||||||
|
if(flag > 0?a[i] > a[j]:a[i] < a[j]){
|
||||||
|
t = a[i];
|
||||||
|
a[i] = a[j];
|
||||||
|
a[j] = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void printArray(int *a, int n){
|
||||||
|
int i;
|
||||||
|
for(i=0;i<n;i++){
|
||||||
|
printf("%d ", a[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int a[] = {100, 1, 3, 2, 9, -1, 20, 30, 10, 50};
|
||||||
|
int n = sizeof(a)/4;
|
||||||
|
selectSort(a, n, 0);
|
||||||
|
printArray(a, n);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 插入排序
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void insertSort(int *a, int n, int flag){
|
||||||
|
int i, j, t;
|
||||||
|
for(i=1;i<n;i++){//假设前i位已经有序
|
||||||
|
t = a[i];//备份当前需要排序的数
|
||||||
|
j=i-1;//计算出当前位置前一项
|
||||||
|
while((flag>0?a[j] > t:a[j] < t) && j>=0) {
|
||||||
|
a[j+1] = a[j];
|
||||||
|
j--;
|
||||||
|
}
|
||||||
|
a[j+1] = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void printArray(int *a, int n){
|
||||||
|
int i;
|
||||||
|
for(i=0;i<n;i++){
|
||||||
|
printf("%d ", a[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int a[] = {100, 1, 3, 2, 9, -1, 20, 30, 10, 50};
|
||||||
|
int n = sizeof(a)/4;
|
||||||
|
insertSort(a, n, 0);
|
||||||
|
printArray(a, n);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
@@ -1,521 +0,0 @@
|
|||||||
## 数组
|
|
||||||
|
|
||||||
### 1 数组的批量增
|
|
||||||
|
|
||||||
题目:设计程序,实现把一个数组的所有元素插入到另一个数组的指定索引位置
|
|
||||||
输入:第一行是第一个数组的元素个数len1,第二行是空格分开的len1 个元素,第三行是第二个
|
|
||||||
数组的元素个数len2,第四行是空格分开的len2 个元素,第五行是插入索引位置
|
|
||||||
输出:输出第二个数组插入到第一个数组后,第一个数组的所有元素
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
3
|
|
||||||
1 2 3
|
|
||||||
2
|
|
||||||
4 5
|
|
||||||
0
|
|
||||||
输出样例:4 5 1 2 3
|
|
||||||
```
|
|
||||||
|
|
||||||
```c
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
int a[100] = {0}, b[100] = {0};
|
|
||||||
int len1, len2, index;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
scanf("%d", &len1);
|
|
||||||
for(i=0;i<len1;i++){
|
|
||||||
scanf("%d", a+i);
|
|
||||||
}
|
|
||||||
scanf("%d", &len2);
|
|
||||||
for(i=0;i<len2;i++){
|
|
||||||
scanf("%d", b+i);
|
|
||||||
}
|
|
||||||
scanf("%d", &index);
|
|
||||||
|
|
||||||
for(i=len1-1;i>=index;i--){
|
|
||||||
a[i+len2] = a[i];
|
|
||||||
}
|
|
||||||
for(i=0;i<len2;i++){
|
|
||||||
a[index+i]=b[i];
|
|
||||||
}
|
|
||||||
len1+=len2;
|
|
||||||
for(i=0;i<len1;i++){
|
|
||||||
printf("%d ", a[i]);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 2 数组的批量删
|
|
||||||
|
|
||||||
题目:设计程序,删除数组中所有值为x 的元素
|
|
||||||
输入:第一行是元素个数n,第二行是空格分开的n 个元素,第三行是需要删掉的标记值x
|
|
||||||
输出:删除后的数组
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
6
|
|
||||||
2 1 2 3 2 2
|
|
||||||
2
|
|
||||||
输出样例:1 3
|
|
||||||
```
|
|
||||||
|
|
||||||
```c
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
int a[100];
|
|
||||||
int len, i, j = 0, num;
|
|
||||||
|
|
||||||
scanf("%d", &len);
|
|
||||||
for(i=0;i<len;i++){
|
|
||||||
scanf("%d", a+i);
|
|
||||||
}
|
|
||||||
scanf("%d", &num);
|
|
||||||
for(i=0;i<len;i++){
|
|
||||||
if(a[i] != num){
|
|
||||||
a[j++] = a[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for(i=j;i<len;i++){
|
|
||||||
a[i]=0;
|
|
||||||
}
|
|
||||||
for(i=0;i<j;i++){
|
|
||||||
printf("%d ", a[i]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 3 左小右大
|
|
||||||
|
|
||||||
题目:输入一串整型正整数,设计程序,以第一个元素为基准,把比第一个元素小的都放在其左边,
|
|
||||||
比第一个元素大的放其右边,也就是“左小右大”的情况,且在此划分的前提下,要求左右两边的元
|
|
||||||
素位置相对次序依旧保持不变,也就是具有稳定性,且不开辟额外的数组空间
|
|
||||||
输入:第一行是元素个数n,第二行是空格分开的n 个元素,总长度不超过100
|
|
||||||
输出:按照规则“左小右大”划分后且相对次序保持不变后的数组
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
8
|
|
||||||
3 1 0 5 6 2 8 0
|
|
||||||
输出样例:1 0 2 0 3 5 6 8
|
|
||||||
```
|
|
||||||
|
|
||||||
```c
|
|
||||||
#include <stdio.h>
|
|
||||||
void change(int a[], int n){
|
|
||||||
int i, j, t, index=0;
|
|
||||||
|
|
||||||
for(i=1;i<n;i++){
|
|
||||||
if(a[0] > a[i]){//i当前遍历的元素下标 如果当前下标值小于中间值则进入
|
|
||||||
index++;//存储位置后移
|
|
||||||
t = a[i];//备份当前位置的值
|
|
||||||
j = i;//将当前位置的下标存储
|
|
||||||
while(j > index){//如果当前遍历位置下标大于存储位置下标则元素整体后移
|
|
||||||
a[j] = a[j-1];
|
|
||||||
j--;
|
|
||||||
}
|
|
||||||
a[index] = t;//元素整体后移后再赋值操作
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for(i=0;i<n-1;i++){
|
|
||||||
if(a[i] > a[i+1]){
|
|
||||||
t = a[i];
|
|
||||||
a[i] = a[i+1];
|
|
||||||
a[i+1] = t;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
int len, i;
|
|
||||||
int a[100];
|
|
||||||
|
|
||||||
scanf("%d", &len);
|
|
||||||
for(i=0;i<len;i++){
|
|
||||||
scanf("%d", a+i);
|
|
||||||
}
|
|
||||||
|
|
||||||
change(a, len);
|
|
||||||
|
|
||||||
for(i=0;i<len;i++){
|
|
||||||
printf("%d ", a[i]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 4 数组逆序
|
|
||||||
|
|
||||||
题目:编写程序,将给定的几个整数存入数组中,将数组中的这几个数逆序存放,再按顺序输出数
|
|
||||||
组中的元素
|
|
||||||
输入:输入在第一行中给出一个正整数n(1 ≤n≤ 10)。第二行输入几个整数,用空格分开
|
|
||||||
输出:在一行中输出这几个整数的处理结果,相邻数字中间用个空格分开
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例
|
|
||||||
4
|
|
||||||
10 8 1 2
|
|
||||||
输出样例:2 1 8 10
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 5 数组循环右移
|
|
||||||
|
|
||||||
题目:设计程序,实现数组元素的整体循环右移
|
|
||||||
输入:第一行是元素个数n,第二行是空格分开的n 个元素,第三行是数组整体右移的步数step
|
|
||||||
输出:整体右移后的数组
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
4
|
|
||||||
1 2 3 4
|
|
||||||
2
|
|
||||||
输出样例:
|
|
||||||
3 4 1 2
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 6 最值交换
|
|
||||||
|
|
||||||
题目:编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数
|
|
||||||
交换,最后输出交换后的序列。题目保证最大和最小值都是唯一的
|
|
||||||
输入:输入在第一行中给出一个正整数N,第二行给出N 个整数,数字间以空格分隔
|
|
||||||
输出:在一行中顺序输出交换后的序列
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
5
|
|
||||||
8 2 5 1 4
|
|
||||||
输出样例:
|
|
||||||
1 2 5 4 8
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 7 数组排序
|
|
||||||
|
|
||||||
题目:输入一串整型正整数,设计程序,给输入的数组排序
|
|
||||||
输入:输入在第一行中给出一个正整数N(<10),第二行给出N 个整数,数字间以空格分隔
|
|
||||||
输出:递增排序后的数据
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
4
|
|
||||||
3 2 10 5
|
|
||||||
输出样例:2 3 5 10
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 8 谁频次最高
|
|
||||||
|
|
||||||
题目:统计一个整型序列中出现次数最多的整数及其出现次数
|
|
||||||
输入:输入在一行中给出序列中整数个数N(0<N<1000),以及N 个整数。数字间以空格分隔
|
|
||||||
输出:在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字
|
|
||||||
是唯一的
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
11
|
|
||||||
10 3 2 -1 5 3 4 3 0 3 2
|
|
||||||
输出样例:3 4
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 9 矩阵运算
|
|
||||||
|
|
||||||
题目:给定一个𝑛 × 𝑛的方阵,请定义一个函数func,计算该矩阵除副对角线、最后一列和最后一
|
|
||||||
行以外的所有元素之和,副对角线为从矩阵的右上角至左下角的连线
|
|
||||||
输入:输入第一行给出正整数n(1 <n ≤ 10),随后n 行,每行给出n 个整数,以空格分隔
|
|
||||||
输出:在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
4
|
|
||||||
2 3 4 1
|
|
||||||
5 6 1 1
|
|
||||||
7 1 8 1
|
|
||||||
1 1 1 1
|
|
||||||
输出样例:35
|
|
||||||
|
|
||||||
方阵中主对角线、副对角线的索引和方阵的行、列有什么关系?
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 10 矩阵乘积
|
|
||||||
|
|
||||||
题目:给定一个m×n的矩阵A,再给定一个给定一个n×p 的矩阵B(m,n,p<10)求矩阵的乘积
|
|
||||||
输入:第一行给出两个整数代表矩阵A 的维度m 和n,随后m 行每行输入以空格分隔的n 个整数,
|
|
||||||
第同时下一行给出两个整数代表矩阵B 的维度n 和p,随后n 行每行输入以空格分隔的p 个整数
|
|
||||||
输出:A 和B 相乘后的结果
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
2 3
|
|
||||||
1 2 3
|
|
||||||
4 5 6
|
|
||||||
3 2
|
|
||||||
1 0
|
|
||||||
0 1
|
|
||||||
1 2
|
|
||||||
输出样例:
|
|
||||||
4 8
|
|
||||||
10 17
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<img src="https://yp.smallkun.cn/markdown/image-20250322222018779.png!compress" alt="image-20250322222018779" style="zoom:50%;" />
|
|
||||||
|
|
||||||
### 11 找字符索引
|
|
||||||
|
|
||||||
题目:编写程序,从给定字符串中查找某指定的字符所在的索引位置
|
|
||||||
输入:输入的第一行是单个待查找的字符。第二行是以回车结束的非空字符串(不超过80 个字符)
|
|
||||||
输出:如果找到,在一行内按照格式“index=下标”,输出该字符在字符串中所对应的下标(下标从0
|
|
||||||
开始),如果该字符出现多次,则返回最后一次出现的索引位置,否则输出"Not Found"
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
m
|
|
||||||
programming
|
|
||||||
输出样例:index=7
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 12 大小写转换
|
|
||||||
|
|
||||||
题目:编写程序,对一个以“#”结束的字符串,把小写字母全部转换成大写字母,把大写字母全部
|
|
||||||
转换成小写字母,并逆序输出结果
|
|
||||||
输入:一个以“#”结束的字符串,不超过100 个字符
|
|
||||||
输出:在一行中输出大小写转换后的结果字符串
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
Ab!23
|
|
||||||
cD &*%$
|
|
||||||
.,#
|
|
||||||
输出样例:
|
|
||||||
,.
|
|
||||||
$%*& dC
|
|
||||||
32!Ba
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 13 字符串比较
|
|
||||||
|
|
||||||
题目:编写程序,将两个不包含换行符的字符串s1 和s2 比较,若s1>s2,输出1;若s1=s2,输出
|
|
||||||
0,否则输出-1,要求不要用strcmp 函数
|
|
||||||
输入:输入总共两行,第一行是第一个字符串,第二行是第二个字符串,字符串的长度均小于100
|
|
||||||
输出:第一个字符串和第二个字符串比较后的结果
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
love
|
|
||||||
love
|
|
||||||
输出样例:0
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 14 字符串排序
|
|
||||||
|
|
||||||
题目:编写程序,实现字符串之间的升序排序并输出结果
|
|
||||||
输入:第一行是一个整数n 代表n 个字符串(n<10 且每个字符串长度都小于80),接下来n 行都
|
|
||||||
是字符串
|
|
||||||
输出:递增排序后的结果
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
3
|
|
||||||
abc
|
|
||||||
b
|
|
||||||
aaaaa
|
|
||||||
输出样例:
|
|
||||||
aaaaa
|
|
||||||
abc
|
|
||||||
b
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 15 字符串插入
|
|
||||||
|
|
||||||
题目:编写程序,实现字符串的插入
|
|
||||||
输入:输入总共三行,第一行是第一个字符串,第二行是第二个字符串,字符串的长度均小于100
|
|
||||||
且不包含换行符,第三行是代表第二个字符串插入至第一个字符串的位置
|
|
||||||
输出:把第二个字符串插入到第一个字符串的指定位置后面的结果
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
abc
|
|
||||||
ee
|
|
||||||
2
|
|
||||||
输出样例:aeebc
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 16 字符串删除
|
|
||||||
|
|
||||||
题目:编写程序,删除字符串中指定的子字符串
|
|
||||||
输入:输入总共两行,第一行是原字符串,第二行是需要删除的字符串,字符串的长度均小于100
|
|
||||||
且不包含换行符
|
|
||||||
输出:删除指定字符串后的新的字符串结果
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
abcddeef
|
|
||||||
dee
|
|
||||||
输出样例:abcdf
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 进制转换
|
|
||||||
|
|
||||||
### 1 整数二进制
|
|
||||||
|
|
||||||
题目:编写程序,把十进制正整数转换为二进制,其中输入的正整数的二进制长度不会超过 32位
|
|
||||||
|
|
||||||
输入:一个正整数 n
|
|
||||||
|
|
||||||
输出:正整数的二进制格式
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:17
|
|
||||||
输出样例:10001
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2 小数二进制
|
|
||||||
|
|
||||||
题目:编写程序,把一个浮点数转换为二进制格式,其中整数部分为 0,当小数部分的二进制无穷
|
|
||||||
尽时,保留 32 位长度即可
|
|
||||||
输入:一个浮点数,范围为 0.0<x<1.0
|
|
||||||
输出:该浮点数的二进制表示方法
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:0.7
|
|
||||||
输出样例:0.10110011001100110011001100110011
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3 二进制转十进制
|
|
||||||
|
|
||||||
题目:输入一个整数的二进制,设计程序,输出该二进制的十进制结果
|
|
||||||
输入:一 二进制表示的整数,长度不会超过 32
|
|
||||||
输出:转换成十进制后的结果
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:1001
|
|
||||||
输出样例:9
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4 二进制转十六进制
|
|
||||||
|
|
||||||
题目:给定一个二进制数,请输出其十六进制
|
|
||||||
输入:一串二进制表示的整数,长度不会超过 32
|
|
||||||
输出:转换成十六进制的结果,字母统一为大写
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:111000001
|
|
||||||
输出样例:1C1
|
|
||||||
```
|
|
||||||
|
|
||||||
### 5 大整数的加法
|
|
||||||
|
|
||||||
题目:设计程序,求两个不超过 200 位的十进制非负整数的和
|
|
||||||
输入:有两行,每行是一个不超过 200 位的非负整数,不会有多余的前导 0
|
|
||||||
输出:一行,即相加后的结果。结果里不能有多余的前导 0
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
22222222222222222222
|
|
||||||
33333333333333333333
|
|
||||||
输出样例:
|
|
||||||
55555555555555555555
|
|
||||||
```
|
|
||||||
|
|
||||||
### 6.大整数的乘法
|
|
||||||
|
|
||||||
题目:设计程序,求两个不超过 200 位的十进制非负整数的乘积
|
|
||||||
输入:有两行,每行是一个不超过 200 位的非负整数,不会有多余的前导 0
|
|
||||||
输出:一行,即相加后的结果。结果里不能有多余的前导 0
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
55555
|
|
||||||
1234567
|
|
||||||
输出样例:
|
|
||||||
68586369685
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 文件
|
|
||||||
|
|
||||||
### 1 文件字符统计
|
|
||||||
|
|
||||||
题目:给定一个文件“test1.txt“,请统计文件中的英文字母字符和数字字符的个数
|
|
||||||
|
|
||||||
输入:给定的一个文件“test1.txt“
|
|
||||||
|
|
||||||
输出:英文字母和数字的个数,用空格隔开
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:一个文件,假设内容为:ab\n123\n***\n
|
|
||||||
输出样例:2 3
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 2 文件合并
|
|
||||||
|
|
||||||
题目:给定两个文件“test1.txt“和”test2.txt“,请把两个文件中的内容合并到一起并写入到新的文
|
|
||||||
|
|
||||||
件”test3.txt”之中
|
|
||||||
|
|
||||||
输入:两个文件“test1.txt“和”test2.txt“
|
|
||||||
|
|
||||||
输出:合并后的文件“test3.txt“
|
|
||||||
|
|
||||||
```ini
|
|
||||||
输入样例:
|
|
||||||
假设 test1.txt 的内容为:ab\ncd
|
|
||||||
假设 test2.txt 的内容为:efg\nhi
|
|
||||||
输出样例:test3.txt 的内容:ab\ncdefg\nhi
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 3 写入数据到文件
|
|
||||||
|
|
||||||
题目:编写程序,实现把从键盘敲入的字符数据都追加存入文件“test.txt”中,直到敲入 ctrl+z 结束,
|
|
||||||
|
|
||||||
注意是追加写入,也就是说文件中原本的内容依旧保留
|
|
||||||
|
|
||||||
输入:从键盘敲入字符,假设敲入了“abc\ndef”,原本的“test.txt“文件中的内容为“我爱中国”
|
|
||||||
|
|
||||||
输出:写入后的文件,按照输入的方式写入后,结果应该为:“我爱中国 abc\ndef“
|
|
||||||
|
|
||||||
-38756
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -0,0 +1,108 @@
|
|||||||
|
### 创建数据库
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE `emp`;
|
||||||
|
|
||||||
|
|
||||||
|
USE emp;
|
||||||
|
-- 建dept表
|
||||||
|
CREATE TABLE `dept`( `deptno` INT(2) NOT NULL, `dname` VARCHAR(14), `loc` VARCHAR(13), CONSTRAINT pk_dept PRIMARY KEY(deptno) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
-- 键emp表
|
||||||
|
CREATE TABLE `emp` ( `empno` int(4) NOT NULL PRIMARY KEY, `ename` VARCHAR(10), `job` VARCHAR(9), `mgr` int(4), `hiredate` DATE, `sal` float(7,2), `comm` float(7,2), `deptno` int(2), CONSTRAINT fk_deptno FOREIGN KEY(deptno) REFERENCES dept(deptno) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
-- 建salgrade表
|
||||||
|
CREATE TABLE `salgrade` ( `grade` int, `losal` int, `hisal` int ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
-- 插入数据
|
||||||
|
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
|
||||||
|
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
|
||||||
|
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
|
||||||
|
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
|
||||||
|
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20);
|
||||||
|
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);
|
||||||
|
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);
|
||||||
|
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);
|
||||||
|
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30);
|
||||||
|
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);
|
||||||
|
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10);
|
||||||
|
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'1987-07-13',3000,NULL,20);
|
||||||
|
INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'1981-11-07',5000,NULL,10);
|
||||||
|
INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30);
|
||||||
|
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'1987-07-13',1100,NULL,20);
|
||||||
|
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30);
|
||||||
|
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20);
|
||||||
|
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'1982-01-23',1300,NULL,10);
|
||||||
|
INSERT INTO SALGRADE VALUES (1,700,1200);
|
||||||
|
INSERT INTO SALGRADE VALUES (2,1201,1400);
|
||||||
|
INSERT INTO SALGRADE VALUES (3,1401,2000);
|
||||||
|
INSERT INTO SALGRADE VALUES (4,2001,3000);
|
||||||
|
INSERT INTO SALGRADE VALUES (5,3001,9999);
|
||||||
|
```
|
||||||
|
|
||||||
|
### 练习题
|
||||||
|
|
||||||
|
1.列出与“SCOTT”从事相同工作的所有员工及部门名称,部门人数。
|
||||||
|
|
||||||
|
2.列出公司各个工资等级雇员的数量、平均工资。
|
||||||
|
|
||||||
|
3.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称。
|
||||||
|
|
||||||
|
4.列出在每个部门工作的员工数量、平均工资和平均服务期限。
|
||||||
|
|
||||||
|
5.列出所有员工的姓名、部门名称和工资。
|
||||||
|
|
||||||
|
6.列出所有部门的详细信息和部门人数。
|
||||||
|
|
||||||
|
7.列出各种工作的最低工资及从事此工作的雇员姓名。
|
||||||
|
|
||||||
|
8.列出各个部门的MANAGER(经理)的最低薪金、姓名、部门名称、部门人数。
|
||||||
|
|
||||||
|
9.列出所有员工的年工资,所在部门名称,按年薪从低到高排序。
|
||||||
|
|
||||||
|
10.查出某个员工的上级主管及所在部门名称,并要求出这些主管中的薪水超过3000
|
||||||
|
|
||||||
|
11.求出部门名称中,带‘S’字符的部门员工的、工资合计、部门人数。
|
||||||
|
|
||||||
|
12.给任职日期超过30年或者在87年雇佣的雇员加薪,加薪原则:10部门增长10%,20部门增长20%, 30部门增长30%,依次类推。
|
||||||
|
|
||||||
|
13.列出至少有一个员工的所有部门的信息:
|
||||||
|
|
||||||
|
14.列出薪金比SMITH对的所有员工:
|
||||||
|
|
||||||
|
15.列出所有员工的姓名以及其直接上级的姓名:
|
||||||
|
|
||||||
|
16.列出受雇日期早于其直接上级的所有员工的编号、姓名,部门名称
|
||||||
|
|
||||||
|
17.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
|
||||||
|
|
||||||
|
18.列出所有"CLERK(职员)"的姓名以及部门名称,部门的人数
|
||||||
|
|
||||||
|
19.列出最低薪金大于1500的各种工作以及从事此工作的全部雇员人数
|
||||||
|
|
||||||
|
20.列出在部门"SALES"工作的员工的姓名,假定不知道销售部的部门编号
|
||||||
|
|
||||||
|
21.列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级
|
||||||
|
|
||||||
|
22.列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工 资。
|
||||||
|
|
||||||
|
23.列出薪金比“SMITH”或“ALLEN”多的所有员工的编号、姓名、部门名称、其领导姓名。
|
||||||
|
|
||||||
|
24.列出所有员工的编号、姓名及其直接上级的编号、姓名,显示的结果按领导年工资的降序排列。
|
||||||
|
|
||||||
|
25.列出受雇日期早于其直接上级的所有员工的编号、姓名、部门名称、部门位置、部门人数。
|
||||||
|
|
||||||
|
26.列出部门名称和这些部门的员工信息(数量、平均工资),同时列出那些没有员工的部门。
|
||||||
|
|
||||||
|
27.列出所有“CLERK”(办事员)的姓名及其部门名称,部门的人数,工资等级。
|
||||||
|
|
||||||
|
28.列出最低薪金大于1500的各种工作及此从事此工作的全部雇员人数及所在部门名称、位置、平均工 资。
|
||||||
|
|
||||||
|
29.列出在部门“SALES”(销售部)工作的员工的姓名、基本工资、雇佣日期、部门名称,假定不知道 销售部的部门编号。
|
||||||
|
|
||||||
|
30.列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级。
|
||||||
|
|
||||||
|
31.列出与“SCOTT”从事相同工作的所有员工及部门名称,部门人数。
|
||||||
|
|
||||||
|
32.查询dept表的结构
|
||||||
|
|
||||||
|
33.检索emp表,用is a 这个字符串来连接员工姓名和工种两个字段
|
||||||
|
|
||||||
|
34.检索emp表中有提成的员工姓名、月收入及提成。
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
```c
|
||||||
|
/*
|
||||||
|
这段代码实现的是经典的 汉诺塔问题 的递归解法。
|
||||||
|
汉诺塔问题 是一个数学问题,具体描述如下:
|
||||||
|
给定三个柱子:A、B、C;
|
||||||
|
有若干个大小不等的圆盘(通常为n个),初始时所有圆盘都堆叠在A柱子上,从小到大按顺序叠放;
|
||||||
|
目标是将这些圆盘从A柱子移动到C柱子上,并且每次只能移动一个圆盘,且大的圆盘不能放在小的圆盘上面。
|
||||||
|
在这段代码中,hanoi 函数递归地解决了这个问题,参数 n 表示要移动的圆盘数,x、y、z 分别表示源柱子、辅助柱子和目标柱子。
|
||||||
|
代码详解:
|
||||||
|
基本思路:
|
||||||
|
如果只有一个盘子(n == 1),直接从 x 移动到 z。
|
||||||
|
如果有多个盘子(n > 1),可以通过以下步骤完成: 先将前 n-1 个盘子从 x 移到 y,这时 z 作为辅助柱子。
|
||||||
|
将第 n 个盘子从 x 移动到 z。
|
||||||
|
最后将 n-1 个盘子从 y 移到 z,这时 x 作为辅助柱子。
|
||||||
|
函数 hanoi 的参数:
|
||||||
|
n:表示要移动的圆盘的数量。
|
||||||
|
x:源柱子。
|
||||||
|
y:辅助柱子。
|
||||||
|
z:目标柱子。
|
||||||
|
递归过程:
|
||||||
|
对于每个递归调用,问题规模逐渐减小,最终会到达只有一个盘子的情况(基准条件)。
|
||||||
|
程序输出:
|
||||||
|
A -> C
|
||||||
|
A -> B
|
||||||
|
C -> B
|
||||||
|
这个输出表示了将两个圆盘从A柱子移动到C柱子所需的步骤。输出结果每一行表示一个移动的操作。
|
||||||
|
总结:
|
||||||
|
这段代码是解决汉诺塔问题的经典递归解法。通过分而治之的策略,把问题分解为更小的子问题来求解。
|
||||||
|
*/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 函数递归打印汉诺塔移动步骤
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
n:盘片数
|
||||||
|
x:源柱子
|
||||||
|
y:中间柱子
|
||||||
|
z:目标柱子
|
||||||
|
|
||||||
|
判断盘子个数:
|
||||||
|
如果只有一个盘子,那么直接搬到目标柱子
|
||||||
|
否则先将上面的n-1的盘子通过目标柱子移
|
||||||
|
动到非目标柱子上后再将剩下的最大的盘子移动到目标柱子
|
||||||
|
|
||||||
|
*/
|
||||||
|
//n的盘子从x通过y移动到z
|
||||||
|
void hanoi(int n, char x, char y, char z){
|
||||||
|
if(n == 1){
|
||||||
|
printf("%c -> %c\n", x, z);
|
||||||
|
}else{
|
||||||
|
hanoi(n-1, x, z, y);
|
||||||
|
printf("%c -> %c\n", x, z);
|
||||||
|
hanoi(n-1, y, x, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
hanoi(3, 'A', 'B', 'C');
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 函数递归求汉诺塔移动的次数
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
n:盘片数
|
||||||
|
x:源柱子
|
||||||
|
y:中间柱子
|
||||||
|
z:目标柱子
|
||||||
|
|
||||||
|
判断盘子个数:
|
||||||
|
如果只有一个盘子,那么直接搬到目标柱子
|
||||||
|
否则先将上面的n-1的盘子通过目标柱子移
|
||||||
|
动到非目标柱子上后再将剩下的最大的盘子移动到目标柱子
|
||||||
|
|
||||||
|
*/
|
||||||
|
//n的盘子从x通过y移动到z
|
||||||
|
//int count = 0;//移动盘片的次数
|
||||||
|
//而不是只经过B柱子的次数
|
||||||
|
int hanoi(int n, char x, char y, char z){
|
||||||
|
int count = 0;//局部变量 用来存储当前这次函数调用中的移动盘子的次数
|
||||||
|
if(n == 1){
|
||||||
|
//printf("%c -> %c\n", x, z);
|
||||||
|
count++;
|
||||||
|
}else{
|
||||||
|
count += hanoi(n-1, x, z, y);
|
||||||
|
//printf("%c -> %c\n", x, z);
|
||||||
|
count++;
|
||||||
|
count += hanoi(n-1, y, x, z);
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
printf("%d\n", hanoi(3, 'A', 'B', 'C'));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Binary file not shown.
+52
@@ -0,0 +1,52 @@
|
|||||||
|
辗转相除法,也称为欧几里得算法(Euclidean Algorithm),是一种用于计算两个整数的最大公约数(Greatest Common Divisor, GCD)的有效方法。
|
||||||
|
|
||||||
|
### 最大公约数的定义
|
||||||
|
|
||||||
|
首先,我需要明确什么是最大公约数。对于两个整数a和b(假设a > b),它们的最大公约数是能够同时整除a和b的最大的正整数。例如,12和18的最大公约数是6,因为6是能够整除12和18的最大的数。
|
||||||
|
|
||||||
|
### 辗转相除法的基本步骤
|
||||||
|
|
||||||
|
根据我所了解,辗转相除法的基本步骤如下:
|
||||||
|
|
||||||
|
1. 用较大的数除以较小的数,得到余数。
|
||||||
|
2. 然后用较小的数除以这个余数,再得到一个新的余数。
|
||||||
|
3. 重复这个过程,直到余数为0。此时,除数就是这两个数的最大公约数。
|
||||||
|
|
||||||
|
让我用一个具体的例子来试试这个方法。
|
||||||
|
|
||||||
|
### 示例:计算 48 和 18 的最大公约数
|
||||||
|
|
||||||
|
1. **第一步**:48 ÷ 18
|
||||||
|
- 48 ÷ 18 = 2 余 12(因为 18 × 2 = 36,48 - 36 = 12)
|
||||||
|
- 现在,用除数18除以余数12。
|
||||||
|
2. **第二步**:18 ÷ 12
|
||||||
|
- 18 ÷ 12 = 1 余 6(因为 12 × 1 = 12,18 - 12 = 6)
|
||||||
|
- 现在,用除数12除以余数6。
|
||||||
|
3. **第三步**:12 ÷ 6
|
||||||
|
- 12 ÷ 6 = 2 余 0(因为 6 × 2 = 12,12 - 12 = 0)
|
||||||
|
- 余数为0,过程结束。
|
||||||
|
|
||||||
|
最后的除数就是6,因此48和18的最大公约数是6。这与我的预期一致,因为6确实是能同时整除48和18的最大的数。
|
||||||
|
|
||||||
|
#### 数学原理
|
||||||
|
|
||||||
|
辗转相除法的有效性基于以下两个数学原理:
|
||||||
|
|
||||||
|
1. **除法算式的基本性质**:
|
||||||
|
对于任何两个正整数a和b(a > b),可以表示为:
|
||||||
|
a = b × q + r,其中q是商,r是余数,且0 ≤ r < b。
|
||||||
|
|
||||||
|
2. **GCD的性质**:
|
||||||
|
GCD(a, b) = GCD(b, r)。也就是说,a和b的最大公约数等于b和r的最大公约数。
|
||||||
|
|
||||||
|
为什么这个性质成立?
|
||||||
|
|
||||||
|
- 设d = GCD(a, b),即d能整除a和b。
|
||||||
|
- 因为a = b × q + r,所以r = a - b × q。
|
||||||
|
- 既然d能整除a和b,那么d也能整除r(因为它是a和b的线性组合)。
|
||||||
|
- 因此,d也是b和r的一个公约数。
|
||||||
|
- 现在,假设存在一个更大的公约数d' > d,能整除b和r。
|
||||||
|
- 但是a = b × q + r,所以d'也能整除a,这意味着d'也是a和b的公约数,且大于d,这与d是最大公约数矛盾。
|
||||||
|
- 因此,GCD(a, b) = GCD(b, r)。
|
||||||
|
|
||||||
|
通过这个性质,我们可以将原问题逐步简化,直到余数为0。此时,GCD(b, 0) = b,因为任何数和0的最大公约数就是那个数本身。
|
||||||
@@ -0,0 +1,543 @@
|
|||||||
|
## 递推与递归
|
||||||
|
|
||||||
|
递推和递归两个算法很重要。递推是计算机数值计算中的一个重要算法,而递归算法在可计算性理论中占有重要地位。它们都是算法设计的有力工具,对于拓展编程思路非常有用。
|
||||||
|
|
||||||
|
### 1.递推算法
|
||||||
|
|
||||||
|
递推算法的思路是通过数学推导,将复杂的运算化解为若干重复的简单运算,以充分发挥计算机长于重复处理的特点。
|
||||||
|
|
||||||
|
一个数列从某一项起,它的任何一项都可以用它前面的若干项来确定,这样的数列称为递推数列,表示某项与其前面的若干项的关系的算式就称为递推公式。例如,自然数
|
||||||
|
|
||||||
|
1,2,…,n的阶乘就可以形成如下数列。
|
||||||
|
|
||||||
|
1!,2!,3!,…,(n-1)!,n!
|
||||||
|
|
||||||
|
令fact(n)为n的阶乘,依据后项与前项的关系可写出如下递推公式。
|
||||||
|
|
||||||
|
```c
|
||||||
|
fact(n)=n* fact(n-1)(通项公式)
|
||||||
|
fact(1)=1(边界条件)
|
||||||
|
```
|
||||||
|
|
||||||
|
在有了通项公式和边界条件后,采用循环结构,从边界条件出发,利用通项公式通过若干步递推过程就可以求出解来。
|
||||||
|
|
||||||
|
【例7.20】 狗熊到玉米地里吃玉米,第一天吃了一半又拿走一个回去喂小狗熊。第二天又去吃了剩下的一半,走时仍然带一个回去。以后每天都吃前一天剩下的一半,并拿走一个。到第十天时,地里只剩下一个玉米。求地里一共有多少玉米。
|
||||||
|
|
||||||
|
【分析】以第十天为依据,往回推算。显然,第九天是3个,第八天是8个。如果设上一天的数量为x1,当天剩下的数量为x2,则它们之间的关系满足如下递推公式。
|
||||||
|
|
||||||
|
```c
|
||||||
|
x1=(x2+1)*2
|
||||||
|
```
|
||||||
|
|
||||||
|
然后把这个x1作为新的x2(x2=x1),再往前推算。假设用day表示天数,因为第十天的数量(边界条件)已知道,所以只要计算9次,即day的初始值为9,不是10。推算一次,day减1,这可以使用while语句实现。
|
||||||
|
|
||||||
|
因为只求第一天的玉米数,所以直接使用一个变量求解,变量的边界条件是1,递推公式简化为x=(x+1)*2。
|
||||||
|
|
||||||
|
```c
|
||||||
|
// 狗熊吃玉米参考程序
|
||||||
|
#include <stdio.h>
|
||||||
|
void main( )
|
||||||
|
{
|
||||||
|
int day=9, x=1;
|
||||||
|
while ( day>0 )
|
||||||
|
{
|
||||||
|
x=(x+1)*2; // 递推
|
||||||
|
day--; // 递推计数器
|
||||||
|
}
|
||||||
|
printf("玉米总数=%d\n",x);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
运行结果为
|
||||||
|
|
||||||
|
玉米总数=1534
|
||||||
|
|
||||||
|
### 2.递归算法及其与递推的比较
|
||||||
|
|
||||||
|
以求阶乘为例。递推是从已知的初始条件出发,逐次去求所需要的阶乘值。
|
||||||
|
|
||||||
|
求5的阶乘值。
|
||||||
|
|
||||||
|
求5!的初始条件fact(1)=1,于是可推得
|
||||||
|
|
||||||
|
```c
|
||||||
|
fact(2)=2* fact(1)=2*1=2
|
||||||
|
fact(3)=3* fact(2)=3*2=6
|
||||||
|
fact(4)=4* fact(3)=4*6=24
|
||||||
|
fact(5)=5* fact(4)=5*24=120
|
||||||
|
```
|
||||||
|
|
||||||
|
递推过程相当于从菜心“推到”外层。
|
||||||
|
|
||||||
|
```c
|
||||||
|
// 递推求阶乘参考程序
|
||||||
|
#include<stdio.h>
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
int sum=1,i=0;
|
||||||
|
for(i=2; i<=5; i++)
|
||||||
|
sum=i*sum;
|
||||||
|
printf("5!=%d\n",sum);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
求阶乘的递归调用程序。
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
int factorial(int);
|
||||||
|
void main( )
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
printf("输入整数 n=");
|
||||||
|
scanf("%d",&n);
|
||||||
|
printf("%d!=%d\n",n,factorial(n));
|
||||||
|
}
|
||||||
|
int factorial( int x )
|
||||||
|
{
|
||||||
|
if ( x==0 ) return 1;
|
||||||
|
else return ( x*factorial( x-1 ) );
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
输入整数 n=5
|
||||||
|
5!=120
|
||||||
|
|
||||||
|
main函数调用factorial函数。其中factorial有返回值,函数递归调用时,每调用一次,其自动型变量就占据堆栈一个区域,供各自的调用使用。递归调用在堆栈中临时占据的存储区域是较多的,在实际运行时,递归调用的时间效率较差。
|
||||||
|
|
||||||
|
函数调用,一般是一个函数调用另外一个函数。此外,函数还可以“自己”调用“自己”,这种调用叫作函数的递归调用。递归调用有两种方式,一种是直接调用其本身,另一种是通过其他函数间接地调用。在这里只给出直接递归调用的例子。
|
||||||
|
|
||||||
|
如前所述,递推过程相当于从菜心“推到”外层。递归算法的出发点则并不放在初始条件上,而是放在求解的目标上,从所求的未知项出发逐次调用本身的求解过程,直到递归的边界(即初始条件)。就求阶乘的例子而言,读者会认为递归算法可能是多余的,费力不讨好。但许多实际问题不可能或不容易找到显而易见的递推关系,这时递归算法就表现出了明显的优越性。它比较符合人的思维方式,逻辑性强,可将问题描述得简单扼要,使代码具有良好的可读性,易于理解。许多看来相当复杂,或难以下手的问题,如果能够使用递归算法,就会使问题变得易于处理。
|
||||||
|
|
||||||
|
### 3.图解递归的执行过程
|
||||||
|
|
||||||
|
递归算法在可计算性理论中占有重要地位,它是算法设计的有力工具,对于拓展编程思路非常有用。递归算法并不涉及高深的数学知识,只不过初学者要建立起递归概念不太容易。为了帮助初学者建立递归的概念,下面以求“3!”为例,给语句编号,以便分析程序的执行过程。图7-1用图解的方法分解执行过程。
|
||||||
|
|
||||||
|
```c
|
||||||
|
int factorial( int x ) // ①
|
||||||
|
{ // ②
|
||||||
|
if ( x==0 ) return 1; // ③
|
||||||
|
else return ( x*factorial( x-1 ) ); // ④
|
||||||
|
} // ⑤
|
||||||
|
```
|
||||||
|
|
||||||
|
下面结合图,说明执行factorial(3)时,语句的递归调用过程。
|
||||||
|
|
||||||
|
1)第1次执行factorial(3),当执行到语句④时,递归调用factorial(3-1)。
|
||||||
|
|
||||||
|
2)执行factorial(2),当执行到语句④时,递归调用factorial(2-1)。
|
||||||
|
|
||||||
|
3)执行factorial(1),满足语句③,经语句⑤结束本次调用并返回1。
|
||||||
|
|
||||||
|
<img src="https://yp.smallkun.cn/markdown/image-20250405183258327.png!compress" alt="image-20250405183258327" style="zoom:33%;" />
|
||||||
|
|
||||||
|
4)返回继续执行factorial(2)的语句④,执行return2*1,结束factorial(2)。
|
||||||
|
|
||||||
|
5)factorial(2)的返回值赋给factorial(3)的语句④,执行return3*2*1。
|
||||||
|
|
||||||
|
6)结束factorial(3)的执行,返回值为3\*2\*1=6。
|
||||||
|
|
||||||
|
由此可见,欲求factorial(3),先要求factorial(2);要求factorial(2),先求factorial(1)。就像剥一棵圆白菜,从外向里,一层层剥下来,到了“菜心”,遇到1的阶乘,其值为1,到达了递归的边界。然后再用factorial(2)=2*factorial(1)得到factorial(2),再用factorial(2)的值和公式factorial(3)=3*factorial(2)求得factorial(3)。这个过程是使用factorial(n)=n*factorial(n-1)这个普遍公式,从里向外倒推回去得到factorial(n)的值。
|
||||||
|
|
||||||
|
### 4.小结
|
||||||
|
|
||||||
|
现将两种算法进行小结。
|
||||||
|
|
||||||
|
1)递推算法的关键是用数学方法寻求一个递推公式,包括能写成函数形式的通项公式和边界条件,然后用循环结构实现。
|
||||||
|
|
||||||
|
2)递归算法的关键是设计递归函数。
|
||||||
|
|
||||||
|
3)递归函数是一个可以直接调用“自己”,或者通过别的函数间接调用“自己”的函数。
|
||||||
|
|
||||||
|
4)递归函数的思路是将问题分解为两个概念性部分:甲和乙,其中甲是能够处理的部分;乙是暂时还不能处理的部分,但乙与原问题相似且其规模较小。由于乙部分与原问题相似,这就形成了“你中有我,我中有你”的特殊局面。通过“一次一尺”地调用,规模也一次一次缩小,直至降到最低,达到递归的边界,问题从而得到解答。
|
||||||
|
|
||||||
|
5)递归是分治策略的最好应用。递归思想能更自然地反映问题,使程序易于理解和易于调试。
|
||||||
|
|
||||||
|
6)递归程序的缺点是要占用大量的时间和空间。
|
||||||
|
|
||||||
|
## 递推求解切饼问题
|
||||||
|
|
||||||
|
### 1.切饼问题的描述
|
||||||
|
|
||||||
|
王小二自夸刀工不错,有人拿来一张大煎饼,把煎饼放在砧板上,问他“饼不许离开砧板,切100刀最多能分成多少块?”
|
||||||
|
|
||||||
|
### 2.寻找求解问题的规律
|
||||||
|
|
||||||
|
解题之前要先找出规律。图7-2给出切饼的示意图,由此图寻找规律。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
设q[n]表示切n刀最多能分成的块数,从图7-2可推出如下规律。
|
||||||
|
|
||||||
|
```c
|
||||||
|
q[1]=1+1=2
|
||||||
|
q[2]=1+1+2=4
|
||||||
|
q[3]=1+1+2+3=7
|
||||||
|
q[4]=1+1+2+3+4=11
|
||||||
|
```
|
||||||
|
|
||||||
|
也就是说,如果定义q[0]=1作为边界条件,即一刀都不切,饼就是一块。由此可得:
|
||||||
|
|
||||||
|
```c
|
||||||
|
q[1]= q[0]+1=2
|
||||||
|
q[2]= q[1]+2=4
|
||||||
|
q[3]= q[2]+3=7
|
||||||
|
q[4]= q[3]+4=11
|
||||||
|
```
|
||||||
|
|
||||||
|
在切法上是让每两条线都有交点。用归纳法可以得出
|
||||||
|
|
||||||
|
q[n]=q[n-1]+n
|
||||||
|
|
||||||
|
q[0]=1 (边界条件)
|
||||||
|
|
||||||
|
### 3.源程序
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
void qq(int);
|
||||||
|
int main( )
|
||||||
|
{
|
||||||
|
qq(100);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
void qq(int n )
|
||||||
|
{
|
||||||
|
int i=0;
|
||||||
|
int q[101];
|
||||||
|
q[0]=1;
|
||||||
|
for( i=1; i<=n; ++i)
|
||||||
|
q[i]=q[i-1]+i;
|
||||||
|
printf("切100刀最多可分成%d块。\n",q[n]);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
设计的函数qq在刀数小于100时具有一般性,qq[4]输出11块,可以验证它的正确性。
|
||||||
|
|
||||||
|
程序运行结果如下:
|
||||||
|
|
||||||
|
切100刀最多可分成5051块。
|
||||||
|
|
||||||
|
## 疑案求解
|
||||||
|
|
||||||
|
话说在某地发生了一桩疑案。公安局对涉及此案的6个嫌疑人的情况进行分析。假设用A、B、C、D、E、F表示这6个嫌疑人。
|
||||||
|
|
||||||
|
1)A和B至少有一个人作案。
|
||||||
|
|
||||||
|
2)A和D不可能是同案犯。
|
||||||
|
|
||||||
|
3)A、E和F这3人中,至少有2人参与作案。
|
||||||
|
|
||||||
|
4)B和C或者同时作案,或者均与本案无关。
|
||||||
|
|
||||||
|
5)C和D中有且只有1人作案。
|
||||||
|
|
||||||
|
6)如果D没有参与作案,则E也不能参与作案。
|
||||||
|
|
||||||
|
试编写一个程序,将作案人找出来。
|
||||||
|
|
||||||
|
### 1.解题方法分析
|
||||||
|
|
||||||
|
计算机强大的逻辑分析功能是由人通过程序赋给它的,即一些逻辑问题必须转换成计算机看得懂的数学表达式和一定的程序指令。计算机解题的一般思路如下:
|
||||||
|
|
||||||
|
1)应用计算机解题的重要一步是将人的想法表示成机器能够实现的表达式、数学公式或操作步骤。
|
||||||
|
|
||||||
|
2)应用计算机解题首先遇到的问题可能是“是”还是“否”,“等于”还是“不等于”,“大于”还是“小于”等。要把这些描述成关系表达式,就要使用关系运算符。因此灵活地使用关系运算符就显得十分重要。
|
||||||
|
|
||||||
|
3)用计算机解题很多时候都要涉及逻辑运算,因此掌握逻辑运算符和构造逻辑表达式也是十分重要的。
|
||||||
|
|
||||||
|
4)用计算机解题往往需要从许多种可能性中去寻找其中的一种或几种,因此,最容易想到的,也是最容易做到的就是“枚举法”。
|
||||||
|
|
||||||
|
5)使用枚举法会遇到大量重复计算的问题,自然要用到程序的循环结构,因此掌握循环结构的程序设计是一个非常重要的基本功。
|
||||||
|
|
||||||
|
6)分支是计算机思维的很重要的一个方式,需要掌握并能灵活运用。
|
||||||
|
|
||||||
|
7)选择合适的算法去实现。
|
||||||
|
|
||||||
|
为了说明编程问题,将先使用6重循环解题,然后改用位运算取代6重循环解题。
|
||||||
|
|
||||||
|
### 2.解题思路
|
||||||
|
|
||||||
|
首先将每一条分析写成逻辑表达式。把这6个条件分别用TJ1、TJ2、TJ3、TJ4、TJ5和TJ6表示,将每一条用逻辑表达式写出来。变量为A、B、C、D、E、F,变量ABCDEF整体从000000变到111111。
|
||||||
|
|
||||||
|
1)TJ1:A和B至少有一个人作案。这是或的关系。即
|
||||||
|
|
||||||
|
```c
|
||||||
|
TJ1 =(A || B)
|
||||||
|
```
|
||||||
|
|
||||||
|
2)TJ2:A和D不可能是同案犯。A&&D表示他们是同案犯,不可能是同案犯即
|
||||||
|
|
||||||
|
```c
|
||||||
|
TJ2 = !(A && D)
|
||||||
|
```
|
||||||
|
|
||||||
|
当然,A=0,B=0时,A&&B为0,而TJ2=1,这种多余的情况将由其他条件剔除。
|
||||||
|
|
||||||
|
3)TJ3:A、E和F这3人中,至少有2人参与作案。这有如下3种可能:
|
||||||
|
|
||||||
|
①A和E作案,写成(A&&E)。
|
||||||
|
|
||||||
|
②A和F作案,写成(A&&F)。
|
||||||
|
|
||||||
|
③E和F作案,写成(E&&F)。
|
||||||
|
|
||||||
|
这3种可能之间是或的关系,所以写成
|
||||||
|
|
||||||
|
```c
|
||||||
|
TJ3 =(A && E) || (A && F) ||(E && F)
|
||||||
|
```
|
||||||
|
|
||||||
|
三个变量A、E和F有8种组合方式,所以TJ3有8种真值。可以做出它的真值表以帮助理解。TJ3有4种情况为1,4种情况为0。
|
||||||
|
|
||||||
|
4)TJ4:B和C或者同时作案,或者均与本案无关。
|
||||||
|
|
||||||
|
①同时作案写成(B&&C)。
|
||||||
|
|
||||||
|
②均与本案无关写成(!B&&!C)。
|
||||||
|
|
||||||
|
两者为或的关系,因此有
|
||||||
|
|
||||||
|
```c
|
||||||
|
TJ4 = (B && C)|| (!B && !C)
|
||||||
|
```
|
||||||
|
|
||||||
|
给出TJ4的真值表以加深理解。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
5)TJ5:C和D中有且只有1人作案。
|
||||||
|
|
||||||
|
```c
|
||||||
|
TJ5 = (C && !D)|| (!C && D)
|
||||||
|
```
|
||||||
|
|
||||||
|
6)TJ6:如果D没有参与作案,则E也不能参与作案。这种比较麻烦,先根据情况作出如表7-2所示的TJ6的真值表,对真值表进行分析,从而构造出满足需要的表达式。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
D作案,将它的值填1,无论E是否作案,TJ6的值都为1,这就是前两行的情况。当D不做案时,E也不可能作案,即TJ6=1,!E=1,对应第3行。最后一行是E=1,即D不做案而E却作案了,这是不可能的,所以TJ6=0。由此可得
|
||||||
|
|
||||||
|
```c
|
||||||
|
TJ6 = D ||( !E)
|
||||||
|
```
|
||||||
|
|
||||||
|
将这6个条件归结成一个破案综合判断条件。
|
||||||
|
|
||||||
|
```c
|
||||||
|
TJ = Tj1 && TJ2 && TJ3 && TJ4 && TJ5 && TJ6
|
||||||
|
```
|
||||||
|
|
||||||
|
当TJ为1时,说明这6条的每一条都满足了,从而找出作案人。
|
||||||
|
|
||||||
|
根据分析,6个嫌疑人,每人有涉案和不涉案两种情况,就有26种组合。枚举就是用这64种情况逐一去试。枚举ABCDEF,就是使这6个变量的排列从000000变到11111。
|
||||||
|
|
||||||
|
根据是否使用6重循环,可以给出两种典型的解题方法。
|
||||||
|
|
||||||
|
这个程序简单,可以直接在主函数里实现。但为了演示字符串数组作为参数的使用方法,所以将解题过程编写为单独的函数,由主程序调用求解。
|
||||||
|
|
||||||
|
### 3.使用6重循环解题
|
||||||
|
|
||||||
|
```c
|
||||||
|
// 使用移位指令实现64次枚举的程序
|
||||||
|
#include<stdio.h>
|
||||||
|
#include <string.h> // 字符串库函数
|
||||||
|
void find(char(*)[9]); // 注意声明参数的格式
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char str[2][9]={"不是罪犯","是罪犯"}; // 初始化字符数组
|
||||||
|
find(str); // 注意调用参数的表示
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
void find(char (*str)[9] // 注意定义参数的声明方式
|
||||||
|
{
|
||||||
|
int tj1,tj2,tj3,tj4,tj5,tj6;
|
||||||
|
int A,B,C,D,E,F;
|
||||||
|
int i;
|
||||||
|
for (i=0; i<=63; i++)
|
||||||
|
{
|
||||||
|
A = ( i & 32) >>5;
|
||||||
|
B = ( i & 16) >>4;
|
||||||
|
C = ( i & 8) >>3;
|
||||||
|
D = ( i & 4) >>2;
|
||||||
|
E = ( i & 2) >>1;
|
||||||
|
F = i & 1;
|
||||||
|
tj1 = A || B;
|
||||||
|
tj2 = !(A && D);
|
||||||
|
tj3 = (A && E) || (A && F) || (E && F);
|
||||||
|
tj4 = (B && C) || (!B && !C) ;
|
||||||
|
tj5 = (C && !D) || (D && !C) ;
|
||||||
|
tj6 = D || (!E) ;
|
||||||
|
if (tj1 + tj2 + tj3 + tj4 + tj5 +tj6 == 6)
|
||||||
|
{
|
||||||
|
printf("A:%s\n",str[A]);
|
||||||
|
printf("B:%s\n",str[B]);
|
||||||
|
printf("C:%s\n",str[C]);
|
||||||
|
printf("D:%s\n",str[D]);
|
||||||
|
printf("E:%s\n",str[E]);
|
||||||
|
printf("F:%s\n",str[F]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
程序运行结果如下:
|
||||||
|
|
||||||
|
A:是罪犯
|
||||||
|
B:是罪犯
|
||||||
|
C:是罪犯
|
||||||
|
D:不是罪犯
|
||||||
|
E:不是罪犯
|
||||||
|
F:是罪犯
|
||||||
|
|
||||||
|
## 汉诺塔问题
|
||||||
|
|
||||||
|
这个问题源于如图所示的示意图,图中有三根柱子,左边柱子上有64个由下向上逐次缩小的金盘。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
相传在古代印度的Bramah庙中,有位僧人整天把三根柱子上的金盘倒来倒去,原来他是想把64个金盘从一根柱子上移到另一根柱子上去。移动过程中恪守下述规则:每次只移动一个盘,且大盘不得落在小盘上面。有人会觉得这很简单,真的动手移盘就会发现,如以每秒移动一个盘子的话,按照上述规则将64个盘子从一根柱子移至另一根柱子上,所需时间约为5800亿年。
|
||||||
|
|
||||||
|
另一个传说是国王要奖赏庙里的僧人,僧人提出寺庙里有三根柱子,一根柱子上有64个一个比一个小的金盘,把64个金盘从一根柱子上移到另一根柱子上。移动过程中恪守下述规则:每次只允许移动一个盘,且大盘不得落在小盘上面;但每移动一次,国王就派人在盘子上放一粒米。国王觉得他们要的很少就答应了,回去跟宰相讨论,宰相算了一下告诉国王,国王根本给不起。
|
||||||
|
|
||||||
|
下图是三个盘子“汉诺塔”的示意图。下面就分析一下如何移动它们。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
假如在A柱上只有一个盘子,盘号为1,这时只需将该盘从A搬至C,一次完成,记为
|
||||||
|
|
||||||
|
```c
|
||||||
|
move 1 from A to C
|
||||||
|
```
|
||||||
|
|
||||||
|
假如在A柱上有两个盘子,1为小盘,2为大盘。
|
||||||
|
|
||||||
|
第①步将1号盘从A移至B,这是为了让2号盘能移动。
|
||||||
|
|
||||||
|
第②步将2号盘从A移至C。
|
||||||
|
|
||||||
|
第③步再将1号盘从B移至C。
|
||||||
|
|
||||||
|
这三步记为(演示):
|
||||||
|
|
||||||
|
move 1 from A to B;
|
||||||
|
move 2 from A to C;
|
||||||
|
move 3 form B to C;
|
||||||
|
|
||||||
|
假如在A柱上有3个盘子,从小到大分别为1号、2号和3号。
|
||||||
|
|
||||||
|
第①步 将1号盘和2号盘视为一个整体;先将二者作为整体从A移至B,给3号盘创造能够一次移至C的机会。这一步记为
|
||||||
|
|
||||||
|
```c
|
||||||
|
move( 2, A, C, B)
|
||||||
|
```
|
||||||
|
|
||||||
|
意思是将上面的两个盘子作为整体从A借助C移至B。
|
||||||
|
|
||||||
|
第②步 将3号盘从A移至C,一次到位。记为
|
||||||
|
|
||||||
|
move 3 from A to C
|
||||||
|
|
||||||
|
第③步 处于B上的作为一个整体的两个盘子,再移至C。这一步记为
|
||||||
|
|
||||||
|
```c
|
||||||
|
move( 2, B, A, C)
|
||||||
|
```
|
||||||
|
|
||||||
|
意思是将两个盘子作为整体从B借助A移至C。
|
||||||
|
|
||||||
|
所谓“借助”的意思,等下面这件事做完了不言自明。
|
||||||
|
|
||||||
|
移动3个盘子的分解图如图所示。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
从题目的约束条件看,大盘上可以随便摞小盘,相反则不允许。现在讨论将1号和2号盘当整体从A移至B的过程move(2,A,C,B)。用“第(1)”代表这一行的操作,实际上可以把它分解为以下三步:
|
||||||
|
|
||||||
|
第(1)的第1步:move 1 form A to C
|
||||||
|
|
||||||
|
第(1)的第2步:move 2 form A to B
|
||||||
|
|
||||||
|
第(1)的第3步:move 1 form C to B
|
||||||
|
|
||||||
|
经过以上步骤,将1号和2号盘作为整体从A移至B,为3号盘从A移至C创造了条件。同样,3号盘一旦到了C,就要考虑如何实现将1号和2号盘当整体从B移至C的过程了。实际上move(2,B,A,C)也要分解为三步:
|
||||||
|
|
||||||
|
第(3)的第1步:move 1 form B to A
|
||||||
|
|
||||||
|
第(3)的第2步:move 2 form B to C
|
||||||
|
|
||||||
|
第(3)的第3步:move 1 form A to C
|
||||||
|
|
||||||
|
看move(2,A,C,B)是说要将两个盘子从A搬至B,但没有C是不行的,因为“第(1)的第1步”就要将1盘从A移到C,给2盘创造条件从A移至B,然后再把1盘从C移至B。看到这里就能明白“借助C”的含义了。因此,在构思搬移过程的参量时,要把3根柱子都用上。
|
||||||
|
|
||||||
|
定义搬移函数move(n,A,B,C),物理意义是将n个盘子从A经B搬到C。
|
||||||
|
|
||||||
|
move(n,A,B,C)分解为3步。
|
||||||
|
|
||||||
|
1)move(n-1,A,C,B)理解为将上面的n-1个盘子作为一个整体从A经C移至B。
|
||||||
|
|
||||||
|
2)输出n:A to C,理解为将n号盘从A移至C,是直接可解结点。
|
||||||
|
|
||||||
|
3)Move(n-1,B,A,C)理解为将上面的n-1个盘子作为一个整体从B经A移至C。
|
||||||
|
|
||||||
|
这里显然是一种递归定义,当解move(n-1,A,C,B)时又可想到,将其分解为3步:
|
||||||
|
|
||||||
|
1)将上面的n-2个盘子作为一个整体从A经B到C,move(n-2,A,B,C)。
|
||||||
|
|
||||||
|
2)第n-1号盘子从A直接移至B,即“n-1:A to B”。
|
||||||
|
|
||||||
|
3)再将上面的n-2个盘子作为一个整体从C经A移至B,move(n-2,C,A,B)。
|
||||||
|
|
||||||
|
根据以上分析,可以编写出完整的程序。
|
||||||
|
|
||||||
|
```c
|
||||||
|
// 用递归求解汉诺塔问题
|
||||||
|
#include <stdio.h> // 预编译命令
|
||||||
|
int step=1; // 整型全局变量,预置1,步数
|
||||||
|
void move(int, char, char, char // 声明要用到的被调用函数
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
int n; // 整型变量,n为盘数,
|
||||||
|
printf("请输入盘数 n="); // 提示信息
|
||||||
|
scanf("%d",&n); // 输入正整数n
|
||||||
|
printf("在3根柱子上移%d只盘的步骤为:\n",n);
|
||||||
|
move(n,'a','b','c'); // 调用函数 move(n,'a','b','c')
|
||||||
|
}
|
||||||
|
void move(int m, char p, char q, char r)
|
||||||
|
{ // 自定义函数体开始
|
||||||
|
if (m==1) // 如果m为1,则为直接可解结点,
|
||||||
|
{
|
||||||
|
// 直接可解结点,输出移盘信息
|
||||||
|
printf("[%d] move 1# from %c to %c\n", step,p,r);
|
||||||
|
step++; // 步数加1
|
||||||
|
}
|
||||||
|
else // 如果不为1,则要调用move(m-1)
|
||||||
|
{
|
||||||
|
move(m-1,p,r,q); // 递归调用move(m-1)
|
||||||
|
// 直接可解结点,输出移盘信息
|
||||||
|
printf("[%d] move %d# from %c to %c\n", step, m, p, r);
|
||||||
|
step++; // 步数加1
|
||||||
|
move(m-1,q,p,r); // 递归调用move(m-1)
|
||||||
|
}
|
||||||
|
} // 自定义函数体结束
|
||||||
|
```
|
||||||
|
|
||||||
|
下面分别演示1、2和3个盘子的移动步骤。
|
||||||
|
|
||||||
|
```ini
|
||||||
|
请输入盘数 n=1在3根柱子上移1只盘的步骤为:
|
||||||
|
[1] move 1# from a to c
|
||||||
|
请输入盘数 n=2在3根柱子上移2只盘的步骤为:
|
||||||
|
[1] move 1# from a to b
|
||||||
|
[2] move 2# from a to c
|
||||||
|
[3] move 1# from b to c
|
||||||
|
请输入盘数 n=3在3根柱子上移3只盘的步骤为:
|
||||||
|
[1] move 1# from a to c
|
||||||
|
[2] move 2# from a to b
|
||||||
|
[3] move 1# from c to b
|
||||||
|
[4] move 3# from a to c
|
||||||
|
[5] move 1# from b to a
|
||||||
|
[6] move 2# from b to c
|
||||||
|
[7] move 1# from a to c
|
||||||
|
```
|
||||||
|
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
### 高精度加法
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
char str1[200], str2[200], result[201] = {0};
|
||||||
|
int i, j, k = 0, t = 0;
|
||||||
|
|
||||||
|
scanf("%s %s", str1, str2);
|
||||||
|
i=strlen(str1)-1;
|
||||||
|
j=strlen(str2)-1;
|
||||||
|
while(i >= 0 || j >= 0){
|
||||||
|
if(i >= 0) t+=str1[i--]-48;
|
||||||
|
if(j >= 0) t+=str2[j--]-48;
|
||||||
|
result[k++] = t%10+48;
|
||||||
|
t /= 10;
|
||||||
|
}
|
||||||
|
if(t != 0){
|
||||||
|
result[k++] = t+48;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(i=k-1;i>=0;i--){
|
||||||
|
putchar(result[i]);
|
||||||
|
}
|
||||||
|
puts("");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 高精度乘法
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
char str1[200], str2[200], result[400]={0};
|
||||||
|
int i, j, k, t = 0;
|
||||||
|
|
||||||
|
scanf("%s %s", str1, str2);
|
||||||
|
|
||||||
|
j=strlen(str2)-1;//下面的数的从个位开始的每一位的下标
|
||||||
|
while(j>=0){
|
||||||
|
i=strlen(str1)-1;//上面的数的每一位的下标
|
||||||
|
k=0;//上面数字的 0:个位 1:十位
|
||||||
|
t=strlen(str2)-j-1;//下面数字乘法的偏移量
|
||||||
|
while(i>=0){
|
||||||
|
result[k+t] += (str1[i]-48)*(str2[j]-48);
|
||||||
|
result[k+t+1] += result[k+t]/10;
|
||||||
|
result[k+t] %=10;
|
||||||
|
k++;
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
j--;
|
||||||
|
}
|
||||||
|
k+=strlen(str2);
|
||||||
|
while(result[k] == 0) k--;
|
||||||
|
|
||||||
|
while(k>=0){
|
||||||
|
putchar(result[k--]+48);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user