作业罢了
This commit is contained in:
commit
1059058706
9 changed files with 437 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*.exe
|
||||
tempCodeRunnerFile.cpp
|
23
.vscode/c_cpp_properties.json
vendored
Normal file
23
.vscode/c_cpp_properties.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Win32",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**",
|
||||
"C:/Project/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
|
||||
"C:/Project/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
|
||||
"C:/Project/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
|
||||
],
|
||||
"defines": [
|
||||
"_DEBUG",
|
||||
"UNICODE",
|
||||
"_UNICODE"
|
||||
],
|
||||
"compilerPath": "C:/Project/mingw64/bin/gcc.exe",
|
||||
"cStandard": "c17",
|
||||
"cppStandard": "c++17",
|
||||
"intelliSenseMode": "windows-gcc-x64"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
29
.vscode/launch.json
vendored
Normal file
29
.vscode/launch.json
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
// 使用 IntelliSense 了解相关属性。
|
||||
// 悬停以查看现有属性的描述。
|
||||
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "gcc.exe",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
|
||||
"args": [],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "C:/Project/mingw64/bin",
|
||||
"environment": [],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"miDebuggerPath": "C:\\Project\\mingw64\\bin\\gdb.exe",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "为 gdb 启用整齐打印",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"preLaunchTask": "C/C++: gcc.exe 生成活动文件"
|
||||
}
|
||||
]
|
||||
}
|
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"C_Cpp.errorSquiggles": "Enabled",
|
||||
"files.encoding": "gb2312"
|
||||
}
|
27
.vscode/tasks.json
vendored
Normal file
27
.vscode/tasks.json
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"tasks": [
|
||||
{
|
||||
"type": "cppbuild",
|
||||
"label": "C/C++: gcc.exe 生成活动文件",
|
||||
"command": "C:/Project/mingw64/bin/gcc.exe",
|
||||
"args": [
|
||||
"-g",
|
||||
"${file}",
|
||||
"-o",
|
||||
"${fileDirname}\\${fileBasenameNoExtension}.exe"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "C:/Project/mingw64/bin"
|
||||
},
|
||||
"problemMatcher": [
|
||||
"$gcc"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"detail": "调试器生成的任务。"
|
||||
}
|
||||
],
|
||||
"version": "2.0.0"
|
||||
}
|
114
ex1.cpp
Normal file
114
ex1.cpp
Normal file
|
@ -0,0 +1,114 @@
|
|||
#include <stdio.h>
|
||||
// #include <iostream>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#define LENGTH 10000
|
||||
//数组长度
|
||||
|
||||
#define OUTPUT
|
||||
//是否输出
|
||||
|
||||
// #define RANDOM
|
||||
//随机数
|
||||
|
||||
|
||||
#define MODE_1
|
||||
//MODE_1: 迭代
|
||||
//MODE_2: 递归
|
||||
|
||||
|
||||
int a[LENGTH];
|
||||
void init()
|
||||
{
|
||||
#ifdef RANDOM
|
||||
srand(time(NULL));
|
||||
#endif
|
||||
|
||||
for(int i = 0 ; i < LENGTH ; i++)
|
||||
|
||||
#ifdef RANDOM
|
||||
a[i]=1+rand()%LENGTH;
|
||||
#else
|
||||
a[i]=LENGTH-i;
|
||||
#endif
|
||||
}
|
||||
|
||||
void swap(int *a,int *b)
|
||||
{
|
||||
int c = *a;
|
||||
*a = *b;
|
||||
*b = c;
|
||||
}
|
||||
|
||||
#ifdef MODE_1
|
||||
void bobblesort1A(int a[],int n)
|
||||
{
|
||||
bool sorted = false;
|
||||
A:
|
||||
sorted = true;
|
||||
|
||||
for(int i = 1 ; i < n ; i++)
|
||||
{
|
||||
if(a[i-1] > a[i])
|
||||
{
|
||||
swap(&a[i-1],&a[i]);
|
||||
|
||||
sorted=false;
|
||||
}
|
||||
|
||||
}
|
||||
n--;
|
||||
if(sorted==false)
|
||||
goto A;
|
||||
}
|
||||
|
||||
#elif defined MODE_2
|
||||
void bobblesort1A(int a[],int n)
|
||||
{
|
||||
bool sorted = false;
|
||||
sorted = true;
|
||||
|
||||
for(int i = 1 ; i < n ; i++)
|
||||
{
|
||||
if(a[i-1] > a[i])
|
||||
{
|
||||
swap(&a[i-1],&a[i]);
|
||||
|
||||
sorted=false;
|
||||
}
|
||||
|
||||
}
|
||||
n--;
|
||||
if(n==1)
|
||||
return;
|
||||
|
||||
bobblesort1A(a,n);
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(){
|
||||
init();
|
||||
clock_t start_t, end_t;
|
||||
double total_t;
|
||||
|
||||
#ifdef OUTPUT
|
||||
printf("Before\n");
|
||||
for(int i=0;i<LENGTH;i++)
|
||||
printf("%d \n",a[i]);
|
||||
#endif
|
||||
|
||||
start_t = clock();
|
||||
bobblesort1A(a,LENGTH);
|
||||
end_t = clock();
|
||||
|
||||
#ifdef OUTPUT
|
||||
printf("After\n");
|
||||
for(int i=0;i<LENGTH;i++)
|
||||
printf("%d \n",a[i]);
|
||||
#endif
|
||||
|
||||
printf("运算时间: %.4f 秒\n",((double)(end_t - start_t) / CLOCKS_PER_SEC));
|
||||
system("pause");
|
||||
|
||||
}
|
189
ex2.cpp
Normal file
189
ex2.cpp
Normal file
|
@ -0,0 +1,189 @@
|
|||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
class Vec
|
||||
{
|
||||
private:
|
||||
|
||||
int *v;
|
||||
int LEN;
|
||||
int USED;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
Vec(int len)
|
||||
{
|
||||
LEN=len*2;
|
||||
v=new int[LEN];
|
||||
USED=9;
|
||||
|
||||
for(int i=0;i<10;i++)
|
||||
v[i]=i+1;
|
||||
|
||||
for(int i=0;i<10;i++)
|
||||
swap(i,rand()%10);
|
||||
}
|
||||
|
||||
int get(int a)
|
||||
{
|
||||
return v[a];
|
||||
}
|
||||
|
||||
void put(int a,int value)
|
||||
{
|
||||
v[a]=value;
|
||||
}
|
||||
|
||||
void swap(int a, int b)
|
||||
{
|
||||
int temp = v[a];
|
||||
v[a] = v[b];
|
||||
v[b] = temp;
|
||||
}
|
||||
|
||||
void expand()
|
||||
{
|
||||
LEN=LEN*2;
|
||||
int *p=new int[LEN];
|
||||
|
||||
for(int i=0;i<=USED;i++)
|
||||
p[i]=v[i];
|
||||
|
||||
delete[] v;
|
||||
v=p;
|
||||
}
|
||||
|
||||
void shrink()
|
||||
{
|
||||
LEN=LEN>>1;
|
||||
int *p=new int[LEN];
|
||||
|
||||
for(int i=0;i<=USED;i++)
|
||||
p[i]=v[i];
|
||||
|
||||
delete[] v;
|
||||
v=p;
|
||||
}
|
||||
|
||||
int insert(int locate,int value)
|
||||
{
|
||||
if(locate<0||locate>USED)
|
||||
return 1;
|
||||
|
||||
USED++;
|
||||
if(USED>=LEN)
|
||||
expand();
|
||||
|
||||
for(int i=USED;i>locate;i--)
|
||||
v[i]=v[i-1];
|
||||
|
||||
v[locate]=value;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int del(int locate,int value)
|
||||
{
|
||||
|
||||
if(locate<0||((USED-value)<0)||((locate+value-1)>USED))
|
||||
return 1;
|
||||
|
||||
USED=USED-value;
|
||||
|
||||
for(int i=locate;i<=USED;i++)
|
||||
v[i]=v[i+value];
|
||||
|
||||
if( ( (double)USED/(double)LEN )<=0.3 )
|
||||
shrink();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int find(int value)
|
||||
{
|
||||
int i = 0;
|
||||
for(i;i<=USED;i++)
|
||||
{
|
||||
if(v[i]==value)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void printall()
|
||||
{
|
||||
for(int i=0;i<USED;i++)
|
||||
printf("%d\n",v[i]);
|
||||
}
|
||||
|
||||
int getlen()
|
||||
{
|
||||
return LEN;
|
||||
}
|
||||
|
||||
int getused()
|
||||
{
|
||||
return USED;
|
||||
}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
srand(time(NULL));
|
||||
|
||||
Vec v(10);
|
||||
int temp[10]={0};
|
||||
int flag;
|
||||
|
||||
|
||||
printf("初始化,输出数组\n");
|
||||
v.printall();
|
||||
|
||||
|
||||
while(1)
|
||||
{
|
||||
printf("选择操作:\n1.插入\n2.删除\n3.查找\n");
|
||||
scanf("%d",&flag);
|
||||
|
||||
switch(flag)
|
||||
{
|
||||
case 1:
|
||||
printf("输入秩与待插入数值\n");
|
||||
scanf("%d %d",&temp[0],&temp[1]);
|
||||
(v.insert(temp[0],temp[1]))?(printf("非法输入\n")):(printf("输出数组\n"));
|
||||
v.printall();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
printf("输入秩与待删除个数\n");
|
||||
scanf("%d %d",&temp[0],&temp[1]);
|
||||
(v.del(temp[0],temp[1]))?(printf("非法输入\n")):(printf("输出数组\n"));
|
||||
v.printall();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
printf("输入要查找的数值\n");
|
||||
scanf("%d",&temp[0]);
|
||||
temp[2]=v.find(temp[0]);
|
||||
|
||||
(temp[2]==-1)?(printf("无此元素\n")):(printf("秩为%d \n",temp[2]));
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("返回菜单\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
flag=0;
|
||||
}
|
||||
return 0;
|
||||
}
|
8
ex3.cpp
Normal file
8
ex3.cpp
Normal file
|
@ -0,0 +1,8 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
int main()
|
||||
{
|
||||
printf("测试");
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
41
workspace.code-workspace
Normal file
41
workspace.code-workspace
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"files.associations": {
|
||||
"ctime": "cpp",
|
||||
"iostream": "cpp",
|
||||
"new": "cpp"
|
||||
},
|
||||
"files.encoding": "gb2312"
|
||||
},
|
||||
"launch": {
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "gcc.exe - 生成和调试活动文件",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
|
||||
"args": [],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "C:/Project/mingw64/bin",
|
||||
"environment": [],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"miDebuggerPath": "C:\\Project\\mingw64\\bin\\gdb.exe",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "为 gdb 启用整齐打印",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"preLaunchTask": "C/C++: gcc.exe 生成活动文件"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Reference in a new issue