diff --git a/.gitignore b/.gitignore index c6127b3..3897fc1 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,94 @@ modules.order Module.symvers Mkfile.old dkms.conf + +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps +CMakeUserPresets.json + +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..a70f8da --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# CodeStream ignored files +/../../2024-cpl-coding\.idea/codestream.xml diff --git a/.idea/2024-cpl-coding.iml b/.idea/2024-cpl-coding.iml new file mode 100644 index 0000000..f08604b --- /dev/null +++ b/.idea/2024-cpl-coding.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/.idea/codestream.xml b/.idea/codestream.xml new file mode 100644 index 0000000..d294c70 --- /dev/null +++ b/.idea/codestream.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/git_toolbox_blame.xml b/.idea/git_toolbox_blame.xml new file mode 100644 index 0000000..7dc1249 --- /dev/null +++ b/.idea/git_toolbox_blame.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0b76fe5 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..dbced12 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..987df67 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.25) +project(2024-cpl-coding C) + +set(CMAKE_C_STANDARD 17) + +add_executable(hello hello.c) +add_executable(guess guess.c) \ No newline at end of file diff --git a/guess.c b/guess.c new file mode 100644 index 0000000..a96676d --- /dev/null +++ b/guess.c @@ -0,0 +1,60 @@ +// +// Created by hfwei on 2024/9/19. +// + +#include +#include +#include + +int main(void) { + int high = 100; + int chance = 7; + + /* + * print the rule of the game + */ + printf("The computer will generate a random number between 1 and %d\n" + "You have %d chances.\n", + high, chance); + /* + * generate a random number + */ + srand(time(NULL)); // use current time as seed for random generator + // 0 .. RAND_MAX + // 1 .. high + int secret = rand() % high + 1; + printf("secret = %d\n", secret); + + while (chance > 0) { + + /* + * let the player enter his/her guess number + */ + printf("Enter your guess.\n"); + + /* + * store the guess number, + * compare it with the secret, + * and inform the player of the result + */ + int guess; + scanf("%d", &guess); + + if (guess == secret) { + printf("You Win!\n"); + break; + } else if (guess > secret) { + printf("guess > secret\n"); + } else { + printf("guess < secret\n"); + } + + /* + * loop: repeat until the player wins or loses + */ + chance--; + // chance = chance - 1; + } + + return 0; +} \ No newline at end of file diff --git a/hello.c b/hello.c new file mode 100644 index 0000000..629da8a --- /dev/null +++ b/hello.c @@ -0,0 +1,32 @@ +// +// Created by hfwei on 2024/9/19. +// + +// single-line comment +// Created by hfwei on 2023/9/15. +// + +/* + * this is a multi-line comment + * this is a multi-line comment + */ + +// directive +// .h: header file +// stdio: standard input/output +#include + +/* + * main function + * y <- f(x) + * int: integer (return) + */ +int main(void) { + // "hello world\n": string + // printf: print + f (format) + printf("Hello World\n"); + + // return statement (return to operating system) + // 0: exit code + return 0; +} \ No newline at end of file