分类 Learn 下的文章

安装步骤(mysql-5.7.40-winx64)

  1. 下载:MySQL :: MySQL Downloads

  2. 解压到文件夹(路径不要有中文和空格)

  3. 添加环境变量,第一个Path环境变量增加mysql的安装目录 \bin 目录

  4. E:\dqsql\mysql-5.7.40-winx64目录下创建 my.ini 文件,输入以下内容

    [ c l i ent ]
    port=3306
    default-character-set=utf8
    [ mysq l d ]
    # 设置为自己MYSQL的安装目录
    basedir=E:\dqsql\mysql-5.7.40-winx64\
    # 设置为MYSQL的数据目录
    datadir=E:\dqsql\mysql-5.7.40-winx64\data\
    port=3306
    character_set_server=utf8
    # 跳过安全检查,注销后需要输入正确的用户名和密码才能登陆
    skip-grant-tables
    
  5. 开始安装((打开终端,进入解压的文件夹))

//切换到 E:\dqsql\mysql-5.7.40-winx64 目录
PS E:\dqsql> cd E:\dqsql\mysql-5.7.40-winx64 
//切换到 bin 文件目录
PS E:\dqsql\mysql-5.7.40-winx64> cd bin
//安装mysql
PS E:\dqsql\mysql-5.7.40-winx64\bin> mysqld -install  
Service successfully installed.
//初始化数据库PS E:\dqsql\mysql-5.7.40-winx64\bin> mysqld --initialize-insecure --user=mysql
PS E:\dqsql\mysql-5.7.40-winx64\bin> net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
//进入mysql管理员终端
mysql -u root -p
//修改用户名=密码
use mysql;
//修改root密码为 free
update user set authentication_string=password('free') where user='root' and Host='localhost';
//刷新权限
flush privileges;
//退出
quit
//再次进入my.ini,修改如下信息
# 跳过安全检查,注销后需要输入正确的用户名和密码才能登陆
#skip-grant-tables
//重启
net stop mysql
net start mysql
//再次登录,不输入密码会报错
PS E:\dqsql\mysql-5.7.40-winx64\bin> mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
//连接
mysql -h 主机IP -P 端口 -u 用户名 -p密码
    

 

 

--> 安装步骤(mysql-5.7.40-winx64)下载:MySQL :: MySQL Downloads解压到文件夹(路径不要有中文和空格)添加环境变量,第一个Path环境变量增加mysql的安装目录 \bin 目录E:\dqsql\mysql-5.7.40-winx64目录下创建 my.ini 文件,输入以下内容[ c l i ent ]port=3306default-character...

前言

很开心这篇美化文章能够帮助到大家,如果转载请标注原文地址哦,十分感谢!

常言道:工欲善其事必先利其器,在发表文章前,美化博客,使其利于自己的观看与管理极其重要,所以我四处搜寻,得到了以下美化代码。

但是,有时候我们走得太远,会忘了为什么出发。希望阅览本文章的人不要忘记初心,想想一开始为什么搭建博客。我相信大部分朋友都是为了记录自己学习笔记,生活故事。

所以,有时候博客美化过度会适得其反,望各位仔细斟酌,莫要使自己的博客变成了花架子,好的文章才是博客之本,立足之根。

 

主题资源

链接:https://pan.baidu.com/s/1yyA-m_h_wku7n3qzK-eYEQ?pwd=echo
提取码:echo

 

1. 我的博客美化 JSON

注意:可复制一键导入

别忘记在主题设置页面修改头像、背景以及底部信息等设置哦(博客背景url已失效,需自己填写)

建议主题设置全局里 CDN 选择不使用或更换为自己的,否则可能出现CSS样式失效

{"argon_theme_color":"#5e72e4","argon_theme_color_hex_preview":"#5e72e4","argon_show_customize_theme_color_picker":true,"argon_enable_immersion_color":"true","argon_darkmode_autoswitch":"time","argon_enable_amoled_dark":"false","argon_card_radius":"15","argon_card_shadow":"default","argon_page_layout":"double","argon_article_list_waterflow":"2","argon_article_list_layout":"1","argon_font":"serif","argon_assets_path":"jsdelivr_fastly","argon_custom_assets_path":"","argon_wp_path":"/","argon_dateformat":"YMD","argon_enable_headroom":"true","argon_toolbar_title":"Echo","argon_toolbar_icon":"","argon_toolbar_icon_link":" ","argon_toolbar_blur":"true","argon_banner_title":"Echo‘s blog","argon_banner_subtitle":"Banner 副标题","argon_banner_size":"fullscreen","argon_page_background_banner_style":"transparent","argon_show_toolbar_mask":true,"argon_banner_background_url":"--bing--","argon_banner_background_color_type":"shape-primary","argon_banner_background_hide_shapes":true,"argon_enable_banner_title_typing_effect":"true","argon_banner_typing_effect_interval":"100","argon_page_background_url":"https://yy.liveout.cn/background/wallhaven-yxjm57_1920x1080.png","argon_page_background_dark_url":"https://yy.liveout.cn/background/wallhaven-6dqjdl_1920x1080.png","argon_page_background_opacity":"1","argon_sidebar_banner_title":"左侧栏标题","argon_sidebar_banner_subtitle":"左侧栏子标题(格言)","argon_sidebar_auther_name":"Echo","argon_sidebar_auther_image":"https://yy.liveout.cn/photo/photo1.png","argon_sidebar_author_description":"左侧栏作者简介","argon_sidebar_announcement":"","argon_fab_show_settings_button":"false","argon_fab_show_darkmode_button":"true","argon_fab_show_gotocomment_button":"false","argon_seo_description":"网站描述 (Description Meta 标签)","argon_seo_keywords":"搜索引擎关键词(Keywords Meta 标签)","argon_article_meta":"time|categories|views","argon_show_readingtime":"true","argon_reading_speed":"580","argon_reading_speed_en":"80","argon_reading_speed_code":"10","argon_show_thumbnail_in_banner_in_content_page":"false","argon_first_image_as_thumbnail_by_default":"true","argon_reference_list_title":"参考","argon_show_sharebtn":"true","argon_show_headindex_number":"false","argon_donate_qrcode_url":"https://www.liveout.cn/usr/uploads/2022/10/wechat1.jpg","argon_additional_content_after_post":"文末附加内容","argon_related_post":"category,tag","argon_related_post_sort_orderby":"meta_value_num","argon_related_post_sort_order":"DESC","argon_related_post_limit":"10","argon_article_header_style":"article-header-style-2","argon_outdated_info_time_type":"createdtime","argon_outdated_info_days":"1","argon_outdated_info_tip_type":"inpost","argon_outdated_info_tip_content":"本文最后更新于%modify_date_delta% 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com","argon_archives_timeline_show_month":"true","argon_archives_timeline_url":"https://www.liveout.cn/pigeonhole/","argon_footer_html":"<style>\n/* 核心样式 */\n.github-badge {\ndisplay: inline-block;\nborder-radius: 4px;\ntext-shadow: none;\nfont-size: 13.1px;\ncolor: #fff;\nline-height: 15px;\nmargin-bottom: 5px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge .badge-subject {\ndisplay: inline-block;\nbackground-color: #4d4d4d;\npadding: 4px 4px 4px 6px;\nborder-top-left-radius: 4px;\nborder-bottom-left-radius: 4px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge .badge-value {\ndisplay: inline-block;\npadding: 4px 6px 4px 4px;\nborder-top-right-radius: 4px;\nborder-bottom-right-radius: 4px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge-big {\ndisplay: inline-block;\nborder-radius: 6px;\ntext-shadow: none;\nfont-size: 14.1px;\ncolor: #fff;\nline-height: 18px;\nmargin-bottom: 7px;\n}\n.github-badge-big .badge-subject {\ndisplay: inline-block;\nbackground-color: #4d4d4d;\npadding: 4px 4px 4px 6px;\nborder-top-left-radius: 4px;\nborder-bottom-left-radius: 4px;\n}\n.github-badge-big .badge-value {\ndisplay: inline-block;\npadding: 4px 6px 4px 4px;\nborder-top-right-radius: 4px;\nborder-bottom-right-radius: 4px;\n}\n.bg-orange {\nbackground-color: #ec8a64 !important;\n}\n.bg-red {\nbackground-color: #cb7574 !important;\n}\n.bg-apricots {\nbackground-color: #f7c280 !important;\n}\n.bg-casein {\nbackground-color: #dfe291 !important;\n}\n.bg-shallots {\nbackground-color: #97c3c6 !important;\n}\n.bg-ogling {\nbackground-color: #95c7e0 !important;\n}\n.bg-haze {\nbackground-color: #9aaec7 !important;\n}\n.bg-mountain-terrier {\nbackground-color: #99a5cd !important;\n}\n</style>\n \n<div class=\"github-badge-big\">\n<span class=\"badge-subject\"><i class=\"fa fa-id-card\"></i> 备案号 </span\n><span class=\"badge-value bg-orange\">\n<a href=\"https://beian.miit.gov.cn/\" target=\"_blank\" one-link-mark=\"yes\"\n>苏ICP备0000000000号</a\n>\n|\n<a\nhref=\"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode= 32072202010255\"\ntarget=\"_blank\"\none-link-mark=\"yes\"\n>苏公网安备 00000000000000号</a\n></span\n>\n</div>\n\n \n<div class=\"github-badge\">\n<span class=\"badge-subject\"><img src=\"https://www.liveout.cn/usr/uploads/2022/10/又拍云_logo4.png\" height=\"20\" width=\"20\"/></i> CDN</span\n><span class=\"badge-value bg-shallots\"\n><a href=\"\" target=\"_blank\" one-link-mark=\"yes\"></a\n><a\nhref=\"https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral\"\ntarget=\"_blank\"\none-link-mark=\"yes\"\n>Upyun</a\n></span\n>\n<span class=\"badge-subject\"><i class=\"fa fa-wordpress\"></i> Powered</span\n><span class=\"badge-value bg-green\"\n><a href=\"https://cn.wordpress.org/\" target=\"_blank\" one-link-mark=\"yes\"\n>WordPress</a\n></span\n>\n</div>\n<div class=\"github-badge-big\">\n<span class=\"badge-subject\">Copyright </span\n><span class=\"badge-value bg-red\">\n2022-2022\n<i class=\"fa fa-copyright\"></i> Echo</span\n>\n</script>\n</div>\n<div class=\"github-badge-big\">\n<span class=\"badge-subject\"><i class=\"fa fa-clock-o\"></i> Running Time</span\n><span class=\"badge-value bg-apricots\"\n><span id=\"blog_running_days\" class=\"odometer odometer-auto-theme\"></span>\ndays\n<span id=\"blog_running_hours\" class=\"odometer odometer-auto-theme\"></span> H\n<span id=\"blog_running_mins\" class=\"odometer odometer-auto-theme\"></span> M\n<span id=\"blog_running_secs\" class=\"odometer odometer-auto-theme\"></span>\nS</span\n>\n <script no-pjax=\"\">\nvar blog_running_days = document.getElementById(\"blog_running_days\");\nvar blog_running_hours = document.getElementById(\"blog_running_hours\");\nvar blog_running_mins = document.getElementById(\"blog_running_mins\");\nvar blog_running_secs = document.getElementById(\"blog_running_secs\");\nfunction refresh_blog_running_time() {\nvar time = new Date() - new Date(2020, 0,0, 0, 0, 0);\nvar d = parseInt(time / 24 / 60 / 60 / 1000);\nvar h = parseInt((time % (24 * 60 * 60 * 1000)) / 60 / 60 / 1000);\nvar m = parseInt((time % (60 * 60 * 1000)) / 60 / 1000);\nvar s = parseInt((time % (60 * 1000)) / 1000);\nblog_running_days.innerHTML = d;\nblog_running_hours.innerHTML = h;\nblog_running_mins.innerHTML = m;\nblog_running_secs.innerHTML = s;\n}\nrefresh_blog_running_time();\nif (typeof bottomTimeIntervalHasSet == \"undefined\") {\nvar bottomTimeIntervalHasSet = true;\nsetInterval(function () {\nrefresh_blog_running_time();\n}, 500);\n}\n</script>\n","argon_enable_code_highlight":"true","argon_code_theme":"vs2015","argon_code_highlight_hide_linenumber":"true","argon_code_highlight_break_line":"false","argon_code_highlight_transparent_linenumber":"false","argon_math_render":"none","argon_mathjax_cdn_url":"//cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js","argon_mathjax_v2_cdn_url":"//cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-AMS_HTML","argon_katex_cdn_url":"//cdn.jsdelivr.net/npm/katex@0.11.1/dist/","argon_enable_lazyload":"true","argon_lazyload_threshold":"800","argon_lazyload_effect":"fadeIn","argon_lazyload_loading_style":"1","argon_enable_fancybox":"true","argon_enable_zoomify":"false","argon_zoomify_duration":"200","argon_zoomify_easing":"cubic-bezier(0.4,0,0,1)","argon_zoomify_scale":"0.9","argon_enable_pangu":"article","argon_custom_html_head":"","argon_custom_html_foot":"<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css\">\n<script src=\"https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js\"></script>\n \n<meting-js \n    server=\"netease\" \n    type=\"playlist\" \n    id=\"7373135320\"\n    fixed=\"true\" \n    mini=\"true\"\n    order=\"list\"\n    loop=\"all\"\n    preload=\"auto\"\n    list-folded=\"true\"\n    lrc-type=\"0\"\n>\n</meting-js>\n\n\n","argon_enable_smoothscroll_type":"1_pulse","argon_enable_into_article_animation":"true","argon_disable_pjax_animation":"false","argon_comment_pagination_type":"page","argon_comment_emotion_keyboard":"true","argon_hide_name_email_site_input":"false","argon_comment_need_captcha":"false","argon_get_captcha_by_ajax":"false","argon_comment_allow_markdown":"true","argon_comment_allow_editing":"true","argon_comment_allow_privatemode":"true","argon_comment_allow_mailnotice":"true","argon_comment_mailnotice_checkbox_checked":true,"argon_comment_enable_qq_avatar":"true","argon_comment_avatar_vcenter":"false","argon_who_can_visit_comment_edit_history":"commentsender","argon_enable_comment_pinning":"true","argon_enable_comment_upvote":"true","argon_comment_ua":"platform,browser","argon_show_comment_parent_info":"true","argon_fold_long_comments":"true","argon_gravatar_cdn":"gravatar.pho.ink/avatar/","argon_text_gravatar":"true","argon_enable_search_filters":"true","argon_search_filters_type":"*post,*page,shuoshuo","argon_pjax_disabled":"false","argon_hide_categories":"","argon_enable_login_css":"true","argon_home_show_shuoshuo":"false","argon_fold_long_shuoshuo":"true","argon_enable_timezone_fix":"false","argon_hide_shortcode_in_preview":"true","argon_trim_words_count":"0","argon_enable_mobile_scale":"false","argon_disable_googlefont":"false","argon_disable_codeblock_style":"false","argon_update_source":"github","argon_hide_footer_author":"true"}

 

2. 年度倒计时显示(左侧栏)

在左侧栏里添加工具——简码,复制一下代码粘贴进去

<div class="progress-wrapper" style="padding: 0">
<div class="progress-info">
<div class="progress-label">
<span id="yearprogress_yearname"></span>
</div>
<div id="yearprogress_text_container" class="progress-percentage">
<span id="yearprogress_progresstext"></span>
<span id="yearprogress_progresstext_full"></span>
</div>
</div>
<div class="progress">
<div id="yearprogress_progressbar" class="progress-bar bg-primary"></div>
</div>
</div>
<script no-pjax="">
function yearprogress_refresh() {
let year = new Date().getFullYear();
$("#yearprogress_yearname").text(year);
let from = new Date(year, 0, 1, 0, 0, 0);
let to = new Date(year, 11, 31, 23, 59, 59);
let now = new Date();
let progress = (((now - from) / (to - from + 1)) * 100).toFixed(7);
let progressshort = (((now - from) / (to - from + 1)) * 100).toFixed(2);
$("#yearprogress_progresstext").text(progressshort + "%");
$("#yearprogress_progresstext_full").text(progress + "%");
$("#yearprogress_progressbar").css("width", progress + "%");
}
yearprogress_refresh();
if (typeof yearProgressIntervalHasSet == "undefined") {
var yearProgressIntervalHasSet = true;
setInterval(function () {
yearprogress_refresh();
}, 500);
}
</script>
<style>
#yearprogress_text_container {
width: 100%;
height: 22px;
overflow: hidden;
user-select: none;
}
#yearprogress_text_container > span {
transition: all 0.3s ease;
display: block;
}
#yearprogress_text_container:hover > span {
transform: translateY(-45px);
}
</style>

 

3. 底部音乐播放

下面的调用链接可能会突然失效,如有需要可参考官方文档

APlayer HTML5音乐播放器 | ACE-BLOG (ace520.github.io)

 

server="netease" 指定音乐平台为网易云,type="song" 指单曲类型,id="7373135320" 为音乐的 id(这里的id为打开音乐歌单,网址显示的id)

开启吸底模式 fixed="true", 开启迷你模式 mini="true", 随机播放 order="random", 关闭底部歌词 lrc-type="0"

注意:id需要为自己创建的歌单,不能为我喜欢的音乐;server可以改自己用的音乐平台,如netease(网易云)、tencent(QQ音乐)

具体参数设置点击此链接:https://yy.liveout.cn/article/Learn/front-end/aplayer%E5%8F%82%E6%95%B0.png

Aplayer播放器官网文档:APlayer HTML5音乐播放器 | ACE-BLOG (ace520.github.io)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js"></script>
 
<meting-js 
    server="netease" 
    type="playlist" 
    id="7360465359"
    fixed="true" 
    mini="true"
    order="random"
    loop="all"
    preload="auto"
    list-folded="false">
</meting-js>

 

4. 动态背景(视频资源失效)

背景可以通过更改 url 链接设置为自己的动态视频尽量不要太大,否则别人访问时会刷新许久

注意视频链接已过期,可更换为自己的链接

上传视频到云平台或媒体库,复制资源链接

<video
src="https://new.gcxstudio.cn/usr/uploads/2022/03/daymode.mp4" /*白天动态视频链接*/
class="bg-video bg-video-day"
autoplay=""
loop="loop"
muted=""
></video>
<video
src="https://new.gcxstudio.cn/usr/uploads/2022/03/darkmode.webm" /*夜间动态视频链接*/
class="bg-video bg-video-night"
autoplay=""
loop="loop"
muted=""
></video>
<style>
video.bg-video {
position: fixed;
z-index: -1;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 100vw;
height: 100vh;
object-fit: cover;
pointer-events: none;
}
html.darkmode video.bg-video.bg-video-day {
opacity: 0;
}
html.darkmode video.bg-video.bg-video-night {
opacity: 1;
}
video.bg-video.bg-video-day {
opacity: 1;
}
video.bg-video.bg-video-night {
opacity: 0;
}
#banner,
#banner .shape {
background: transparent !important;
}

</style>
<script
src="https://api.gcxstudio.cn/odometer/odometer.min.js"
integrity="sha256-65R1G5irU1VT+k8L4coqgd3saSvO/Wufson/w+v2Idw="
crossorigin="anonymous"
></script>


<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>

<div id='aplayer'></div>


 

5. 虚拟人物(看板娘)

以下代码选择一项复制即可,效果不同,自行选择

具体文章:stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platform (github.com)

<script src="https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script>

 

  1. 其中 jsonpath: 后面的链接可按自己爱好更改,选择别的虚拟人物
<script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.min.js"></script>
<script>
    L2Dwidget.init({
        "model": {
       //jsonpath控制显示那个小萝莉模型,
            //(切换模型需要改动)
//              "https://unpkg.com/(live2d-widget-model-koharu)@1.0.5/assets/(koharu).model.json"
            jsonPath: "https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json",
            "scale": 1
        },
        "display": {
            "position": "right", //看板娘的表现位置
            "width": 75,  //小萝莉的宽度
            "height": 150, //小萝莉的高度
            "hOffset": 0,
            "vOffset": -20
        },
        "mobile": {
            "show": true,
            "scale": 0.5
        },
        "react": {
            "opacityDefault": 0.7,
            "opacityOnHover": 0.2
        }
    });
</script>

   /*   小帅哥: https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json
      萌娘:https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
      白猫:https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json
      黑猫: https://unpkg.com/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json
      小可爱(女):https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
      小可爱(男):https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
      初音:https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json
      圣职者妹妹:https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json
      茶杯犬:https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json
      绿毛妹妹:https://unpkg.com/live2d-widget-model-tsumiki@1.0.5/assets/tsumiki.model.json
      金龟子妹妹:https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json
      https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json
      https://unpkg.com/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json
      小阿狸: https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json
      https://unpkg.com/live2d-widget-model-nietzche@1.0.5/assets/nietzche.model.json
      https://unpkg.com/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json
      女学生: https://unpkg.com/live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json */

 

6. 网站底部信息

CSS(样式表)

<style>
/* 核心样式 */
.github-badge {
display: inline-block;
border-radius: 4px;
text-shadow: none;
font-size: 13.1px;
color: #fff;
line-height: 15px;
margin-bottom: 5px;
font-family: "Open Sans", sans-serif;
}
.github-badge .badge-subject {
display: inline-block;
background-color: #4d4d4d;
padding: 4px 4px 4px 6px;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
font-family: "Open Sans", sans-serif;
}
.github-badge .badge-value {
display: inline-block;
padding: 4px 6px 4px 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
font-family: "Open Sans", sans-serif;
}
.github-badge-big {
display: inline-block;
border-radius: 6px;
text-shadow: none;
font-size: 14.1px;
color: #fff;
line-height: 18px;
margin-bottom: 7px;
}
.github-badge-big .badge-subject {
display: inline-block;
background-color: #4d4d4d;
padding: 4px 4px 4px 6px;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.github-badge-big .badge-value {
display: inline-block;
padding: 4px 6px 4px 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.bg-orange {
background-color: #ec8a64 !important;
}
.bg-red {
background-color: #cb7574 !important;
}
.bg-apricots {
background-color: #f7c280 !important;
}
.bg-casein {
background-color: #dfe291 !important;
}
.bg-shallots {
background-color: #97c3c6 !important;
}
.bg-ogling {
background-color: #95c7e0 !important;
}
.bg-haze {
background-color: #9aaec7 !important;
}
.bg-mountain-terrier {
background-color: #99a5cd !important;
}
</style>

 

HTML(底部信息)

   <div class="github-badge-big">
        <span class="badge-subject"><i class="fa fa-id-card"></i> 备案号 </span>
        <span class="badge-value bg-orange">
            <!-- 备案链接 -->
            <a href="https://beian.miit.gov.cn/" target="_blank" one-link-mark="yes">苏ICP备1234567890号</a>|
            <a href="https://www.beian.gov.cn/portal/index?token=e547b70c-fbe1-4c80-a4a2-857b17389a71" target="_blank"
                one-link-mark="yes">
                苏公网安备 32072212344321号</a>
        </span>
    </div>


  <div class="github-badge-big">
        <span class="badge-subject"><i class="fa fa-cloud" aria-hidden="true"></i> CDN</span>
        <span class="badge-value bg-shallots">
            <!-- 又拍云链接 -->
            <a href="https://www.upyun.com/" target="_blank" one-link-mark="yes">Upyun</a>
        </span>

        <span class="badge-subject"><i class="fa fa-wordpress"></i> Powered</span>
        <span class="badge-value bg-green">
            <!-- wordpress链接 -->
            <a href="https://cn.wordpress.org/" target="_blank" one-link-mark="yes">
                WordPress</a></span>
    </div>

    <div class="github-badge-big">
        <span class="badge-subject"><i class="fa fa-copyright" aria-hidden="true"></i>Copyright </span>
        <span class="badge-value bg-red">2022-2023</i>
            <a href="https://www.liveout.cn/" target="_blank" one-link-mark="yes">@ Echo
        </span>
        </script>
    </div>

	<!-- 运行时间 -->
    <div class="github-badge-big">
        <span class="badge-subject"><i class="fa fa-clock-o"></i> Running Time</span><span
            class="badge-value bg-apricots"><span id="blog_running_days" class="odometer odometer-auto-theme"></span>
            days
            <span id="blog_running_hours" class="odometer odometer-auto-theme"></span> H
            <span id="blog_running_mins" class="odometer odometer-auto-theme"></span> M
            <span id="blog_running_secs" class="odometer odometer-auto-theme"></span>S
        </span>

 

JavaScript(网站运行时间脚本)

注意:new Date( year, month, date, hrs, min, sec) 按给定的参数创建 日期对象

其中month的值域为0~11,0代表1月,11表代表12月;所以你输入的月份需要为自己真正月份的前一个月

<script no-pjax="">
var blog_running_days = document.getElementById("blog_running_days");
var blog_running_hours = document.getElementById("blog_running_hours");
var blog_running_mins = document.getElementById("blog_running_mins");
var blog_running_secs = document.getElementById("blog_running_secs");
function refresh_blog_running_time() {
var time = new Date() - new Date(2022, 5, 31, 0, 0, 0); /*此处日期的月份改为自己真正月份的前一个月*/
var d = parseInt(time / 24 / 60 / 60 / 1000);
var h = parseInt((time % (24 * 60 * 60 * 1000)) / 60 / 60 / 1000);
var m = parseInt((time % (60 * 60 * 1000)) / 60 / 1000);
var s = parseInt((time % (60 * 1000)) / 1000);
blog_running_days.innerHTML = d;
blog_running_hours.innerHTML = h;
blog_running_mins.innerHTML = m;
blog_running_secs.innerHTML = s;
}
refresh_blog_running_time();
if (typeof bottomTimeIntervalHasSet == "undefined") {
var bottomTimeIntervalHasSet = true;
setInterval(function () {
refresh_blog_running_time();
}, 500);
}
</script>

 

7. 字体、鼠标等特效

Docker系列 WordPress系列 特效 - Bensz (hwb0307.com)

 

8. 博客自定义CSS样式

8.1 博主的设置

参考上面友情链接, 以下为我的额外CSS,涉及字体、透明等博客样式

外观 --- 自定义 --- 额外CSS

ps: 字体链接需要上传到云端调用才能生效(下面字体链接已失效)

/*网站字体*/
/*原则上你可以设置多个字体,然后在不同的部位使用不同的字体。*/
@font-face{
    font-family:echo;
src:url(https://fastly.jsdelivr.net/gh/huangwb8/bloghelper@latest/fonts/13.woff2) format('woff2')
}

body{
		font-family: 'echo', Georgia, -apple-system, 'Nimbus Roman No9 L', 'PingFang SC', 'Hiragino Sans GB', 'Noto Serif SC', 'Microsoft Yahei', 'WenQuanYi Micro Hei', 'ST Heiti', sans-serif
}
 
/*横幅字体大小*/
.banner-title {
  font-size: 2.5em;
}
.banner-subtitle{
  font-size: 28px;
	
	-webkit-text-fill-color: transparent;        
background: linear-gradient(94.75deg,rgb(60, 172, 247) 0%,rgb(131, 101, 253) 43.66%,                rgb(255, 141, 112) 64.23%,rgb(247, 201, 102) 83.76%,rgb(172, 143, 100) 100%);        
-webkit-background-clip: text;
}
 
/*文章标题字体大小*/
.post-title {
    font-size: 25px
}
 
/*正文字体大小(不包含代码)*/
.post-content p{
    font-size: 1.25rem;
}
li{
    font-size: 1.2rem;
	
}
 
/*评论区字体大小*/
p {
    font-size: 1.2rem
			
}
 
/*评论发送区字体大小*/
.form-control{
    font-size: 1.2rem
}
 
/*评论勾选项目字体大小*/
.custom-checkbox .custom-control-input~.custom-control-label{
    font-size: 1.2rem
}
/*评论区代码的强调色*/
code {
  color: rgba(var(--themecolor-rgbstr));
}
 
/*说说字体大小和颜色设置*/
.shuoshuo-title {
    font-size: 25px;
/*  color: rgba(var(--themecolor-rgbstr)); */
}
 
/*尾注字体大小*/
.additional-content-after-post{
    font-size: 1.2rem
}
 
/* 公告居中 */
.leftbar-announcement-title {
    font-size: 20px;
/*     text-align: center; */
 				color: #00FFFF
}

.leftbar-announcement-content {
    font-size: 15px;
    line-height: 1.8;
    padding-top: 8px;
    opacity: 0.8;
/*     text-align: center; */
			color:#00FFFF;
}

/* 一言居中 */
.leftbar-banner-title {
    font-size: 20px;
    display: block;
    text-align: center;
		opacity: 0.8;
}

/* 个性签名居中 */
.leftbar-banner-subtitle {
    margin-top: 15px;
    margin-bottom: 8px;
    font-size: 13px;
    opacity: 0.8;
    display: block;
    text-align: center;
}

/*========颜色设置===========*/
 
/*文章或页面的正文颜色*/
body{
    color:#364863
}
 
/*引文属性设置*/
blockquote {
    /*添加弱主题色为背景色*/
    background: rgba(var(--themecolor-rgbstr), 0.1) !important;
    width: 100%
}
 
/*引文颜色 建议用主题色*/
:root {
    /*也可以用类似于--color-border-on-foreground-deeper: #009688;这样的命令*/
    --color-border-on-foreground-deeper: rgba(var(--themecolor-rgbstr));
}
 
/*左侧菜单栏突出颜色修改*/
.leftbar-menu-item > a:hover, .leftbar-menu-item.current > a{
    background-color: #f9f9f980;
}
 
/*站点概览分隔线颜色修改*/
.site-state-item{
    border-left: 1px solid #aaa;
}
.site-friend-links-title {
    border-top: 1px dotted #aaa;
}
#leftbar_tab_tools ul li {
    padding-top: 3px;
    padding-bottom: 3px;
    border-bottom:none;
}
html.darkmode #leftbar_tab_tools ul li {
    border-bottom:none;
}
 
/*左侧栏搜索框的颜色*/
button#leftbar_search_container {
    background-color: transparent;
}
 
/*========透明设置===========*/
 
/*白天卡片背景透明*/
.card{
    background-color:rgba(255, 255, 255, 0.8) !important;
    /*backdrop-filter:blur(6px);*//*毛玻璃效果主要属性*/
    -webkit-backdrop-filter:blur(6px);
}
 
/*小工具栏背景完全透明*/
/*小工具栏是card的子元素,如果用同一个透明度会叠加变色,故改为完全透明*/
.card .widget,.darkmode .card .widget,#post_content > div > div > div.argon-timeline-card.card.bg-gradient-secondary.archive-timeline-title{
    background-color:#ffffff00 !important;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
}
.emotion-keyboard,#fabtn_blog_settings_popup{
    background-color:rgba(255, 255, 255, 0.95) !important;
}
 
/*分类卡片透明*/
.bg-gradient-secondary{
    background:rgba(255, 255, 255, 0.1) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter:blur(10px);
}
 
/*夜间透明*/
html.darkmode.bg-white,html.darkmode .card,html.darkmode #footer{
    background:rgba(66, 66, 66, 0.9) !important;
}
html.darkmode #fabtn_blog_settings_popup{
    background:rgba(66, 66, 66, 0.95) !important;
}
 
/*标签背景
.post-meta-detail-tag {
    background:rgba(255, 255, 255, 0.5)!important;
}*/
 
 
/*========排版设置===========*/
 
/*左侧栏层级置于上层*/
#leftbar_part1 {
    z-index: 1;
}
 
/*分类卡片文本居中*/
#content > div.page-information-card-container > div > div{
    text-align:center;
}
 
/*子菜单对齐及样式调整*/
.dropdown-menu .dropdown-item>i{
    width: 10px;
}
.dropdown-menu>a {
    color:var(--themecolor);
}
.dropdown-menu{
    min-width:max-content;
}
.dropdown-menu .dropdown-item {
    padding: .5rem 1.5rem 0.5rem 1rem;
}
.leftbar-menu-subitem{
    min-width:max-content;
}
.leftbar-menu-subitem .leftbar-menu-item>a{
    padding: 0rem 1.5rem 0rem 1rem;
}
 
/*左侧栏边距修改*/
.tab-content{
    padding:10px 0px 0px 0px !important;
}
.site-author-links{
    padding:0px 0px 0px 10px ;
}
/*目录位置偏移修改*/
#leftbar_catalog{
    margin-left: 0px;
}
/*目录条目边距修改*/
#leftbar_catalog .index-link{
    padding: 4px 4px 4px 4px;
}
/*左侧栏小工具栏字体缩小*/
#leftbar_tab_tools{
    font-size: 14px;
}
 
/*正文图片边距修改*/
article figure {margin:0;}
/*正文图片居中显示*/
.fancybox-wrapper {
    margin: auto;
}
/*正文表格样式修改*/
article table > tbody > tr > td,
article table > tbody > tr > th,
article table > tfoot > tr > td,
article table > tfoot > tr > th,
article table > thead > tr > td,
article table > thead > tr > th{
    padding: 8px 10px;
    border: 1px solid;
}
/*表格居中样式*/
.wp-block-table.aligncenter{margin:10px auto;}
 
/*回顶图标放大*/
button#fabtn_back_to_top, button#fabtn_go_to_comment, button#fabtn_toggle_blog_settings_popup, button#fabtn_toggle_sides, button#fabtn_open_sidebar{
    font-size: 1.2rem;
}
 
/*顶栏菜单放大*/
/*这里也可以设置刚刚我们设置的btfFont字体。试试看!*/

.navbar-nav .nav-link {
    font-size: 1rem;
    font-family: 'echo';
			
}
.navbar-brand {
	font-family: 'echo';
    font-size: 1.2rem;
    margin-right: 1.0 rem;
    padding-bottom: 0.2 rem;
	
	-webkit-text-fill-color: transparent;        
background: linear-gradient(94.75deg,rgb(60, 172, 247) 0%,rgb(131, 101, 253) 43.66%,                rgb(255, 141, 112) 64.23%,rgb(247, 201, 102) 83.76%,rgb(172, 143, 100) 100%);        
-webkit-background-clip: text;
}

/*菜单大小*/
.nav-link-inner--text {
    font-size: 1.25em;
}
.navbar-nav .nav-item {
    margin-right:0;
}
.mr-lg-5, .mx-lg-5 {
    margin-right:1rem !important;
}
.navbar-toggler-icon {
    width: 1.8rem;
    height: 1.8rem;
}
/*菜单间距*/
.navbar-expand-lg .navbar-nav .nav-link {
    padding-right: 1.4em;
    padding-left: 1.4em;
}
 
/*隐藏wp-SEO插件带来的线条阴影(不一定要装)*/
*[style='position: relative; z-index: 99998;'] {
    display: none;
}

/* Github卡片样式*/
.github-info-card-header a {
    /*Github卡片抬头颜色*/
    color: black !important;
    font-size: 1.5rem;
}
.github-info-card {
    /*Github卡片文字(非链接)*/
    font-size: 1rem;
    color: black !important;
}
.github-info-card.github-info-card-full.card.shadow-sm {
    /*Github卡片背景色*/
    background-color: rgba(var(--themecolor-rgbstr), 0.1) !important;
}

/*      左侧栏外观CSS     */

/* 头像 */
#leftbar_overview_author_image {
    width: 100px;
    height: 100px;
    margin: auto;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-color: rgba(127, 127, 127, 0.1);
    overflow: hidden;
    transition: transform 0.3s ease;
}

/*  头像亮暗  */
#leftbar_overview_author_image:hover {
	transform: scale(1.23);
	filter: brightness(150%);
}

/* 名称 */
#leftbar_overview_author_name {
  	margin-top: 15px;
	font-size: 18px;align-content;
	color:#00FFFF;
}

/* 简介 */
#leftbar_overview_author_description {
    font-size: 14px;
    margin-top: -4px;
    opacity: 0.8;
	color:#c21f30;
}

/* 标题,链接等 */
a, .btn-neutral {
    color:#AF7AC5 ;
	
}

/* 页脚透明 */
#footer {
    background: var(--themecolor-gradient);
    color: #fff;
    width: 100%;
    float: right;
    margin-bottom: 25px;
    text-align: center;
    padding: 25px 20px;
    line-height: 1.8;
    transition: none;
    opacity: 0.6;
}

8.2 根据主题自动透明

添加到 页尾脚本 里,根据主题色自动透明,透明度可以在op1、op2、op3.....那里设置

<script>
  function hexToRgb(hex,op){
    let str = hex.slice(1);
    let arr;
    if (str.length === 3) arr = str.split('').map(d => parseInt(d.repeat(2), 16));
    else arr = [parseInt(str.slice(0, 2), 16), parseInt(str.slice(2, 4), 16), parseInt(str.slice(4, 6), 16)];
    return  `rgb(${arr.join(', ')}, ${op})`;
};

  let themeColorHex = getComputedStyle(document.documentElement).getPropertyValue('--themecolor').trim();
  let op1 = 0.6
  let themeColorRgb = hexToRgb(themeColorHex,op1);
  let themecolorGradient = getComputedStyle(document.documentElement).getPropertyValue('--themecolor-gradient')*
  document.documentElement.style.setProperty('--themecolor-gradient',themeColorRgb)

  let op2 = 0.8
  // 方法一:
  let colorTint92 = getComputedStyle(document.documentElement).getPropertyValue('--color-tint-92').trim();
  colorTint92 += ', '+op2;
  document.documentElement.style.setProperty('--color-tint-92',colorTint92)
  // 方法二:(无效)
  // let colorForegroundHex = getComputedStyle(document.documentElement).getPropertyValue('--color-foreground').trim();
  // let colorForeground = hexToRgb(colorForegroundHex,op2)
  // 无效的原因是博客里的--color-fpreground是局部变量,不是:root里的全局变量,所以最好的办法是修改--color-tint-92,这个是全局的
  // document.documentElement.style.setPrope。rty('--color-fpreground',colorForeground)
   // 不要用下面这种cssText这种写法,会导致上面--themecolor-gradient的样式修改失效!
   // document.documentElement.style.cssText = '--color-tint-92:'+colorTint92
  
  let op3 = 0.65
  let colorShade90 = getComputedStyle(document.documentElement).getPropertyValue('--color-shade-90').trim();
  colorShade90 += ', ' + op3;
  document.documentElement.style.setProperty('--color-shade-90',colorShade90)
 
  let op4 = 0.8
  let colorShade86 = getComputedStyle(document.documentElement).getPropertyValue('--color-shade-86').trim();
  colorShade86 += ', ' + op4;
  document.documentElement.style.setProperty('--color-shade-86',colorShade86)
</script>

来源自友链朋友:北冥红烧鱼 (hongshaoyv.com)

 

9. 头像缩放或亮暗

鼠标经过头像时自动缩放、高亮/暗

外观 --- 自定义 --- 额外CSS

#leftbar_overview_author_image {
    width: 100px;
    height: 100px;
    margin: auto;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-color: rgba(127, 127, 127, 0.1);
    overflow: hidden;
    box-shadow: 0 0 5px rgba(116, 8, 204, 0.3);
    transition: transform 0.3s ease; /*变化速度*/
}

#leftbar_overview_author_image:hover {
	transform: scale(1.2); /*缩放大小*/
	filter: brightness(150%); /*调节亮度*/
}

 

10. 头像/姓名跳转相关页

外观 --- 主题文件编辑器 中, 选择 边栏文件(sidebar.php)

点击 头像 跳转大概在第 126 行左右,

添加 <a> 标签,即 <a href="https://www.liveout.cn/about/">, 其中链接改为想要跳转的地方

<div class="tab-pane fade text-center<?php if ($nowActiveTab == 1) { echo ' active show'; }?>" id="leftbar_tab_overview" role="tabpanel" aria-labelledby="leftbar_tab_overview_btn">
<a href="https://www.liveout.cn/about/">
<div id="leftbar_overview_author_image" style="background-image: ........ 
<a/>

点击 姓名 跳转则是 130 行左右

添加 <a href="https://www.liveout.cn/about/">.... <a/>

<a href="https://www.liveout.cn/about/">
<h6 id="leftbar_overview_author_name"><?php echo get_option('argon_sidebar_auther_name') == '' ? bloginfo('name') : get_option('argon_sidebar_auther_name'); ?> </h6>
<a/>


 

11. 评论头像显示

外观 --- 主题文件编辑器 中的 function 模板函数添加此代码

if ( ! function_exists( 'get_cravatar_url' ) ) {
    /**
    *  把Gravatar头像服务替换为Cravatar
    * @param string $url
    * @return string
    */
    function get_cravatar_url( $url ) {
        $sources = array(
            'www.gravatar.com',
            '0.gravatar.com',
            '1.gravatar.com',
            '2.gravatar.com',
            'secure.gravatar.com',
            'cn.gravatar.com'
        );
        return str_replace( $sources, 'cravatar.cn', $url );
    }
    add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
    add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
    add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}

来源:网络

 

12. 插件合集

12.1 网站访问数据(左侧栏)

  1. 进入Wordpress,点击插件,搜索并且下载 Wp Statistics
  2. 外观——小工具——站点额外内容——旧版小工具——统计

12.2 评论IP地址

以下根据体验自己选择

WP-UserAgent | kyleabaker.com From 友链大佬:obaby@mars (h4ck.org.cn)

WordPress 展示评论者地理位置插件 Easy Location | 歲月留聲 (0xo.net)

12.3 评论管理

Akismet Anti-Spam: Spam Protection

12.4 邮件发送

WP Mail SMTP

12.5 文章字数统计

WP Word Count

12.6 WP用户个人头像

Simple Local Avatars

 

教程视频

个人博客网站美化代码使用哔哩哔哩bilibili

个人博客网站(Wordpress)基本使用哔哩哔哩bilibili

 

推荐文章

  1. 个人博客网站搭建 – Echo (liveout.cn)
  2. 个人博客主题分享(WordPress) – Echo (liveout.cn)
  3. 博客图片托管到又拍云教程 – Echo (liveout.cn)
  4. Wordpress/Typecho博客搬迁教程 – Echo (liveout.cn)

 

相关链接

本文可能涉及的代码出自以下博客文章,十分感谢下面各位大佬的分享

关于 Argon 主题 更多美化内容文章Argon 主题的美化设置 - Gong_cx (gcxstudio.cn)

博客透明、鼠标等美化: Docker系列 WordPress系列 特效 - Bensz (hwb0307.com)

博客添加音乐插件: https://echeverra.cn/aplayer

Argon主题 GitHub地址solstice23/argon-theme: ? Argon - 一个轻盈、简洁的 WordPress 主题 (github.com)

Argon主题作者博客solstice23 – Blog

Argon主题使用文档Argon Theme Docs (solstice23.top)

 

FAQ

如果遇到问题无法解决,请参考以下途径

  1. B站视频:博客搭建常见问题汇总哔哩哔哩bilibili
  2. 翻翻评论区,已经有许多问题提出和解决了,大部分都一样
  3. 查看官方文档

如果问题还未解决,请评论区留言

 

一些话

很开心这篇美化文章能够帮助到大家,如果转载请标注原文地址哦,十分感谢!

--> [alert]关于新建页面、菜单图标等操作请跳转目录到教程视频~[/alert][alert]搭建博客遇到的99.9%问题已经在文档、相关视频以及评论区中给出,一定要认真看文档及视频讲解,不会可以翻评论区[/alert]前言很开心这篇美化文章能够帮助到大家,如果转载请标注原文地址哦,十分感谢!常言道:工欲善其事必先利其器,在发表文章前,美化博客,使其利于自己的观看与管理极其重要,所以我四处搜...

C语言练习题(简单入门题)

前言

这篇文章是一些关于C语言的简单入门题,相关刷题网站为:https://www.dotcpp.com/


1. 数字的处理与判断

题目描述

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

输入格式

一个不大于5位的数字

输出格式

三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数

样例

输入:
12345

输出:
5
1 2 3 4 5
54321

代码

#include<stdio.h>

int main()
{

	int a[4],t,n,count=0,i=0;
	scanf("%d",&t);
	n=t;
	while(t)
	{
		a[count]=t%10;
		t/=10;
		count++;
	}
	printf("%d\n",count);
	for(i=count-1;i>0;i--)
	{
		printf("%d ",a[i]);
	}
	printf("%d\n",a[0]);
	
	while(n)
	{
		printf("%d",n%10);
		n=n/10;
	 } 
	return 0;
}


2. 字符串分类统计

题目描述

输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

输入格式

一行字符,长度不超过200

输出格式

统计值

样例

输入:
aklsjflj123 sadf918u324 asdf91u32oasdf/.';123

输出:
23 16 2 4

代码

#include<stdio.h>
int main()
{
	int a=0,b=0,c=0,d=0;//a 英文,b 数字,c 空格, d 其他字符 
	char x;
	while((x=getchar())!='\n')
	{
		if(x>='a'&&x<='z'||x>='A'&&x<='Z')
		a++;
		else if(x>='1'&&x<='9')
		b++;
		else if(x==' ')
		c++;
		else d++;
	}
	printf("%d %d %d %d",a,b,c,d);
	return 0;
}


3. 筛选N以内的素数

题目描述

用简单素数筛选法求N以内的素数。

输入格式

N

输出格式

2~N的素数

样例

输入:
100

输出:
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

代码

#include <stdio.h>
int main()
{
	int i,j,n;
	scanf("%d",&n);
	for(i=2; i<n; i++)
	{
		for(j=2; j<i; j++)
		{
			if(i%j == 0)
			{
				break;
			}
		}
		
		if(j==i) //说明i只有1和j可整除
		{
			printf("%d\n",i);
		}
	
	}
	return 0;
}


4. 矩阵对角线求和

题目描述

求一个3×3矩阵对角线元素之和。

输入格式

矩阵

输出格式

主对角线 副对角线 元素和

样例

输入:
1 2 3
1 1 1
3 2 1

输出:
3 7

代码

//要点:1. sum初始化为0,否则得出第一个答案不对。
//2. for循环中给i和j赋值,不然换行时直接结束输入

#include <stdio.h>
int main()
{
	int i=0,j=0;
	int a[3][3];
	int sum1=0,sum2=0;
	for(i=0; i<3; i++)
	{
		for(j=0; j<3; j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(i=0; i<3; i++)
	{
		sum1 += a[i][i];
	}
	
	sum2 = a[0][2]+a[1][1]+a[2][0];
	
	printf("%d %d",sum1,sum2);
}

5.最大公约数与最小公倍数

题目描述

输入两个正整数m和n,求其最大公约数和最小公倍数。

输入格式

两个整数

输出格式

最大公约数,最小公倍数

样例

输入:5 7

输出:1 35

代码

//  辗转相除法求最大公因数:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数。
//  最小公倍数:两数相乘的积除以这两个数的最大公约数

#include <stdio.h>
int main()
{
	int a,b,c,d,t,m;
	scanf("%d %d",&a,&b);
	if(a<b) 
	{
		t=a;
		a=b;
		b=t;
	}
	c = a%b;
	d = a*b;
	while(c != 0)
	{
		a = b;
		b = c;
		c = a%b;
	}
	m = d/b;
	printf("%d %d",b,m);
}


6.迭代法求平方根

题目描述

用迭代法求 平方根

公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数

输入格式

X

输出格式

X的平方根

样例

输入:4

输出:2.000

代码

#include <stdio.h>
#include <math.h>
int main()
{
	int a;
	double x1,x2=1.0;
	scanf("%d",&a);
	do{
		x1 = x2;
		x2 = (x1+a/x1)/2;
	}while(fabs(x1-x2)>=0.0001);  //求浮点数x的绝对值
	printf("%0.3lf",x2);
	return 0;
}


7. 排序

7.1冒泡排序

题目描述

用冒泡法对10个整数从小到大排序。

输入格式

输入10个无序的数字

输出格式

排序好的10个整数

样例

输入:4 85 3 234 45 345 345 122 30 12

输出:
3
4
12
30
45
85
122
234
345
345

代码

#include <stdio.h>
int main()
{
	int t,i=0,j=0;
	int arr[10];
	for(i=0; i<10; i++) 
	{ 
		scanf("%d",&arr[i]);
	}
	for(i=0; i<10; i++)
	{
		for(j=0; j<9-i; j++)   //10个数,总共需要进行10-1次
		{	 // //10-1个数排完,第一个数一定已经归位
             //每次会将最大(升序)或最小(降序)放到最后面
				if(arr[j]>arr[j+1])  ////每次冒泡,进行交换
			{
				t = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = t;
			}
		}
	}
	for(j=0; j<10; j++)
		{
			printf("%d\n",arr[j]);
		}
	return 0;
}


 

7.2选择排序

题目描述

用选择法对n个整数从小到大排序。

输入格式

选择输入数字字数n,输入n个无序的数字

输出格式

排序好的n个整数

样例

输入:
10
4 85 3 234 45 345 345 122 30 12

输出:
3
4
12
30
45
85
122
234
345
345

代码

#include <stdio.h>
int main(void)
{
    int a[1001];
    int n,i,j,t;
    scanf("%d",&n);//n为要排序的数的个数
    //输入需要排序的数
    for(i=0;i<n;++i)
        scanf("%d",a+i);
    //接下来进行排序
    for(i=0;i<n-1;++i)//因为每次需要和a[i]后面的数进行比较,所以到a[n-2](倒数第2个元素)就行
    {
        for(j=i+1;j<n;++j)//j从i后一个开始,a[i]与a[j]进行比较
        {
            if(a[i]>a[j])//a[i]为当前值,若是比后面的a[j]大,进行交换
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }//每排序一次,就会将a[i](包括a[i])之后的最小值放在a[i]的位置
    }
	for(j=0;j<n;++j)
    printf("%d\n",a[j]);

    return 0;
}


 

--> C语言练习题(简单入门题)前言这篇文章是一些关于C语言的简单入门题,相关刷题网站为:https://www.dotcpp.com/1. 数字的处理与判断题目描述给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123输入格式一个不大于5位的数字输出格式三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后...

Java——求解一元n次方程(V1.0)

主要思路

  1. 通过 接口(interface) 进行求解方法声明,通过 implements 声明自己使用的接口
  2. 通过字符串 equals() 方法以及 while() 循环进行选择是否退出程序
  3. switch case 语句判断求解的方程次幂

代码

/*
 @author big_fw
 @function 求解一元n次方程
 @version 1.o
 */

import java.util.Map;
import java.util.Scanner;

interface Solve1 { //一元一次
    double solve1(double a, double b, double y);
}

interface Solve2 { //一元二次
    double solve2(double a, double b, double c);
}

public class SolveEquation implements Solve1, Solve2 {
    //一元一次
    public double solve1(double a, double b, double y) {
        double x;
        x = (y - b) / a;
        return x;
    }

    //一元二次
    public double solve2(double a, double b, double c) {
        double x, x1;
        x1 = b * b - 4 * a * c;
        x = Math.sqrt(x1);
        return x; //返回 b^2-4ac
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str1 = "q";
        System.out.println("进入程序请输入i,如要退出程序请输入 'q':");
        String str2 = scan.next();
        while (!str2.equals(str1)) {
            System.out.print("请选择输入的一元n次方程的次幂:");
            int n = scan.nextInt();

            switch (n) {
                case 1://一元一次方程
                    SolveEquation s1 = new SolveEquation();

                    System.out.println("输入一元一次方程,其形式为 ax + b = y");

                    System.out.print("a为:");
                    double a = scan.nextDouble();
                    System.out.print("b为:");
                    double b = scan.nextDouble();
                    System.out.print("y为:");
                    double y = scan.nextDouble();

                    System.out.println("方程解为:" + s1.solve1(a, b, y));
                    break;

                case 2://一元二次方程
                    SolveEquation s2 = new SolveEquation();
                    System.out.println("输入一元二次方程,其形式为 ax^2+bx+c=0(其中a != 0)");

                    System.out.print("a为:");
                    double a1 = scan.nextDouble();
                    System.out.print("b为:");
                    double b1 = scan.nextDouble();
                    System.out.print("c为:");
                    double c1 = scan.nextDouble();

                    if (b1 * b1 - 4 * a1 * c1 < 0) {
                        System.out.println("方程无实解");
                    } else if (b1 * b1 - 4 * a1 * c1 >= 0) {

                        double x3 = s2.solve2(a1, b1, c1);
                        double x1 = (-b1 + x3) / (2 * a1);
                        double x2 = (-b1 - x3) / (2 * a1);

                        System.out.println("一元二次方程的解为:");
                        System.out.println("x1 = " + x1);
                        System.out.println("x2 = " + x2);

                        break;
                    }
                default:
                    System.out.println("还没写好 ^_^");
            }
        }
    }
}

 

--> Java——求解一元n次方程(V1.0)主要思路通过 接口(interface) 进行求解方法声明,通过 implements 声明自己使用的接口通过字符串 equals() 方法以及 while() 循环进行选择是否退出程序switch case 语句判断求解的方程次幂代码/* @author big_fw @function 求解一元n次方程 @version 1.o */import ...

Java实现聊天室功能

前提

1. UDP(用户数据报协议)

使用UDP协议时,在客户和服务器程序都可以放置一个DatagramSocket(数据报套接字),DatagramSocket 用于收发数据包,而DaragramPacket包含了具体的信息。准备接收一个数据报时,只需提供一个缓冲区,以便安置接收到的数据。数据包抵达时,通过DatagramSocket,作为信息起源地的因特网地址以及端口编号会自动得到

2. IntAddress类

用于描述和包装一个Internet IP 地址,通过三个方法返回 InetAddress 实例

3. Swing类 和 AWT

构建图形界面

 

服务器端

1. 发送/接收消息

创建 DatagramSocket 对象用于打开指定端口并监听,然后用创建一个 DatagramPacket,利用 DatagramSocket 中的 receive(ds)方法接收数据并放到刚创建的 DatagramPacket 对象中

2. 客户端和服务器端聊天

编写一个简单的聊天图形界面,并在构造函数中用已经创建好的DatagramSocket对象打开特点的端口监听,并用Thread开启Runnable线程。重写run()函数,将接受数据的receive函数写在这里,使程序在任何时候都能够接收客户端发送的数据, 注意数据中包含客户端的IP地址,将它保存起来。另外加一个按钮实现服务器端发送数据,过程和上述客户端发送数据差不多,区别在于上述客户端和服务器端已经connect而现在没有,所以创建DatagramPacket对象使需要在后面加上已经保存的客户端IP地址,然后用send发送数据

3. 客户端和客户端聊天

服务器端不需要知道有多少客户端要连接,所以就不需要多个线程负责接收客户端连接。服务器端不知道客户端什么时候需要连接,所以就需要开启一个线程来接受客户端发送的消息,注意只需要一个线程即可。服务器端收到消息后,需要发给各个客户端,这就需要发送客户端的IP地址,我们知道用receive()方法可以接受数据,DatagramPacket中就包含了IP地址,由于是多个客户端就需要一个集合专门保存各个客户端的IP地址

代码

/**
 *@author big_fw
 *@version 1.0
 */
package group;
 
import java.net.DatagramPacket;//实现无连接分组传送服务。 仅基于该数据包中包含的信息,每个消息从一台机器路由到另一台机器
import java.net.DatagramSocket;//用于发送和接收数据报数据包的套接字
import java.net.SocketAddress;
import java.util.ArrayList;
 
public class gServer implements Runnable{
	
	private DatagramSocket DS;  
	private int Port = 9998;
	
	private ArrayList<SocketAddress> clients = new ArrayList<SocketAddress>(); //保存客户端IP地址
	
	public gServer() throws Exception{		
		try {			
			DS = new DatagramSocket(Port);
			new Thread(this).start();	
		} catch (Exception ex) {
		} 
	}	
	public void run(){
		try{
			while(true){			
				byte[] data = new byte[255];
				DatagramPacket DP = new DatagramPacket(data,data.length);				
				DS.receive(DP);
				
				SocketAddress clientip = DP.getSocketAddress(); 
				
				if(!clients.contains(clientip)){
					clients.add(clientip);
				}
				this.sendAll(DP);
			}		
		}catch(Exception ex){			
		}		
	}	
	private void sendAll(DatagramPacket dp) throws Exception {
		for(SocketAddress sa : clients){
			DatagramPacket dd = new DatagramPacket(dp.getData(),dp.getLength(),sa);				
			DS.send(dd);				
		}
	}
	public static void main(String[] args) throws Exception{
		new gServer();
	}
}

 

客户端

1. 发送/接收消息

创建DatagramSocket对象,创建好IP地址和端口号后,利用DatagramSocket中的connect(ip,port)方法和服务端建立连接,然后利用DatagramSocket中的send(dp)方法发送早已准备好的数据。

2. 客户端和服务器端

客户端和服务器端都差不多,区别在于,客户端需要在构造函数中先和服务器端建立连接,给服务器端发送一个数据包,表示已经建立连接(其实是告诉服务器端自己的IP地址)然后再打开线程。在run()函数中不用保存服务器地址。在发送消息按钮处不需要给DatagramPacket对象加IP地址,因为客户端早已和服务器端建立连接

3. 客户端和客户端

因为是多个客户端之间进行聊天,所以就需要一个name来区别每一个客户端,打开客户端需要输入昵称。连接服务器、发送消息、接收服务器传来的消息,这些操作和上述的类似,这里不在介绍。( 彩蛋)在客户端GUI中我实现了用回车发送消息,并清空输入框的效果。

代码

客户端1

 

package group;

import java.awt.BorderLayout; //边界布局设置了一个容器,安排和调整其组件,以适应五个区域:北,南,东,西和中心
import java.awt.event.ActionEvent;//指示组件定义的动作发生的语义事件,当事件发生时,实现ActionListener接口的对象获得此ActionEvent 
import java.awt.event.ActionListener;//用于接收动作事件的侦听器界面
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

import javax.swing.JFrame;
import javax.swing.JOptionPane;//可以轻松地弹出一个标准对话框,提示用户获取值或通知他们某些东西
import javax.swing.JTextArea;//显示纯文本的多行区域
import javax.swing.JTextField;//一个轻量级组件,允许编辑单行文本

public class gClient extends JFrame implements Runnable,ActionListener {

    private JTextField field = new JTextField();
    private JTextArea area = new JTextArea("聊天内容:\n");

    private String name = null;

    private int Port = 9998;
    private DatagramSocket DS;

    public gClient(){

        this.setTitle("客户端");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.add(area, BorderLayout.CENTER); //private JTextArea area = new JTextArea("聊天内容:\n");
        this.add(field, BorderLayout.SOUTH); //private JTextField field = new JTextField();
        field.addActionListener(this);
        this.setSize(220, 290);
        this.setVisible(true);

        name = JOptionPane.showInputDialog("输入昵称");  //标准对话框

        try {
            DS = new DatagramSocket();
            InetAddress address = InetAddress.getByName("Localhost");
            DS.connect(address,Port);

            String str = name + "登录!";
            byte[] data = str.getBytes();
            DatagramPacket DP = new DatagramPacket(data,data.length);

            DS.send(DP);
            new Thread(this).start();

        } catch (Exception e) {
        }
    }
    public void run(){
        try{
            while(true){
                byte[] data = new byte[255];
                DatagramPacket DP = new DatagramPacket(data,data.length);
                DS.receive(DP);
                String str = new String(DP.getData(),0,DP.getLength());
                area.append(str + '\n');
            }
        }catch(Exception ex){
        }
    }
    public void actionPerformed(ActionEvent e){
        try{
            String str = name + "说:" + field.getText();
            byte[] dd = str.getBytes();
            DatagramPacket Data = new DatagramPacket(dd,dd.length);
            DS.send(Data);
            field.setText("");
        }catch(Exception ex){
        }
    }
    public static void main(String[] args){
        new gClient();
    }
}

 

客户端2

 

package group;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class gClient2 extends JFrame implements Runnable,ActionListener {

    private JTextField field = new JTextField();
    private JTextArea area = new JTextArea("聊天内容:\n");

    private String name = null;

    private int Port = 9998;
    private DatagramSocket DS;

    public gClient2(){

        this.setTitle("客户端");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.add(area, BorderLayout.CENTER);
        this.add(field, BorderLayout.SOUTH);
        field.addActionListener(this);
        this.setSize(220, 290);
        this.setVisible(true);

        name = JOptionPane.showInputDialog("输入昵称");

        try {
            DS = new DatagramSocket();
            InetAddress address = InetAddress.getByName("Localhost");
            DS.connect(address,Port);

            String str = name + "登录!";
            byte[] data = str.getBytes();
            DatagramPacket DP = new DatagramPacket(data,data.length);

            DS.send(DP);
            new Thread(this).start();

        } catch (Exception e) {
        }
    }
    public void run(){
        try{
            while(true){
                byte[] data = new byte[255];
                DatagramPacket DP = new DatagramPacket(data,data.length);
                DS.receive(DP);
                String str = new String(DP.getData(),0,DP.getLength());
                area.append(str + '\n');
            }
        }catch(Exception ex){
        }
    }
    public void actionPerformed(ActionEvent e){
        try{
            String str = name + "说:" + field.getText();
            byte[] dd = str.getBytes();
            DatagramPacket Data = new DatagramPacket(dd,dd.length);
            DS.send(Data);
            field.setText("");
        }catch(Exception ex){
        }
    }
    public static void main(String[] args){
        new group.gClient();
    }
}

 

 

--> Java实现聊天室功能前提1. UDP(用户数据报协议)使用UDP协议时,在客户和服务器程序都可以放置一个DatagramSocket(数据报套接字),DatagramSocket 用于收发数据包,而DaragramPacket包含了具体的信息。准备接收一个数据报时,只需提供一个缓冲区,以便安置接收到的数据。数据包抵达时,通过DatagramSocket,作为信息起源地的因特网地址以及端口编...