yanhy的学习记录匣 - 学习
https://www.yanhy.top/index.php/tag/%E5%AD%A6%E4%B9%A0/
-
随身wifi折腾入门(1)-- 开箱&备份
https://www.yanhy.top/index.php/archives/332/
2023-04-01T19:22:00+08:00
所以还是决定自己做个教程,顺便留下工具,以后说不定还能回来看看...(该文章参考酷安各个大佬教程总结而来,其中本篇主要目标为001B,003\001C通用)开箱针不戳,这次买到两个棒子,查看板号都是001B,据说这个板号支持的频段最全面,同时也是骁龙410的芯片,可以用来折腾了;拆开后发现板载卡座,甚至不需要自己加焊了,运气不错。工具清单准备好软件硬件,开始刷机。先从安卓开始,再到Debian、openwrt,最后再自己编译一个系统慢慢折腾...
[驱动]vivo9008drivers
[依赖库]微软常用运行库包(可选)
[ADB&Fastboot工具]platform-tools
[9008分区操作工具]Qualcomm Premium Tool V2.4
[9008全量备份工具]MiKo_Loder Pro
[安卓apk]面具等
[远程工具]ARDC(B2016)
[高通工具]QPST_2.7.496
下载链接:https://www.123pan.com/s/Dpq0Vv-XAUHd.html提取码:V23y环境安装0、建议关闭杀毒软件,否则多个工具可能会被杀毒拦截1、安装 [驱动]vivo9008drivers 驱动,这个驱动是为了识别棒子9008;安装 [高通工具]QPST,后续备份QCN用(可选)2、如果电脑是网吧电脑或者新系统、win7等,建议安装[依赖库]微软常用运行库包 ,有些软件依赖一部分的微软运行库,否则无法正常打开3、解压 9008分区操作工具、9008全量备份工具 ,并打开 MiKo_Loder Pro/miko.exe 安装 9008全量备份工具 ,安装完成后将 Loader.exe 替换到安装目录中以完成破解,之后每次使用打开 Loader.exe 即可4、9008分区操作工具 仅需解压即可,解压后的文件夹需要删除中文部分(部分系统会因为中英文报错),解压出文件夹 Qualcomm Premium Tool V2.4 ,无需安装5、解压 [ADB&Fastboot工具]platform-tools 内的文件到文件夹 tools ,自行新建并重命名为tools,后续adb等操作将以这个为准6、打开调试工具:进入tools文件夹,并在这个文件夹的上方地址栏,单击编辑,删除全部内容,输入 cmd 并回车,会打开cmd命令行窗口。输入指令 adb 并回车,查看是否会输出帮助日志,如有即正常进入9008方法一:1、按住棒子上的RST按钮再插入电脑,即可自动进入9008模式方法二:1、正常插入棒子到电脑等待一两分钟2、待完全开机后,电脑会出提示网络设备接入,同时可以在设备管理器看到adb设备3、回到cmd控制台,输入指令 adb devices 即可查看棒子是否连接正常4、输入指令 adb reboot edl,棒子会自动重启到9008模式,再次查看设备管理器,即可在端口处发现9008设备系统备份刷机第一步务必要先备份,哪怕网上有很多别人的备份,还是建议自己保留一份全量备份,其中就包含基带等文件。预计要备份的内容:全量备份、全分区备份、QCN备份,由于QCN备份需要开放901D端口,需要Root后才能进行,因此先折腾安卓系统,将面具刷入后再备份QCN全量备份进入9008后,打开前面安装好并破解完成的 miko,也就是 Loader.exe ,可以新建一个桌面快捷方式,下面统一称为miko打开miko后,按照下面的顺序进行操作,可进行备份全量包与查看存储信息既然有备份流程,当然也有恢复流程,如下图至此,全量备份结束,关闭Miko即可,如果需要进行下面的备份,需要拔掉棒子重新进9008模式。分区备份本部分备份仅需备份modem分区等小分区,用于刷debian或者openwrt时替换基带驱动等,无需备份userdata等大分区简单备份(推荐)如果有备份全量分区,并且只需要更换系统后插卡使用,仅需要备份Modem分区即可进入文件夹 Qualcomm Premium Tool V2.4,开始进行破解操作(音量调小)进入文件夹后,打开 CMD_KEYGEN_CRACKED_by_FACEBOOK破解器,点击GenerateKey生成一个key文件,放到一个位置并记下来。生成完毕后可关闭破解器。打开 Qualcomm Premium Tool 软件,点左上角Help->Activate ,并选择刚刚生成的key文件,即可激活激活完成后,按下图顺序执行部分分区备份。如显示Fail无法读取分区,可拔下棒子重新进入9008模式重复第5、6、7步,将Modem、fsg、modemst1、modemst2分区备份下来即可。备份完成后,出现这四个文件即为备份完成modem文件可通过7z解压提取其中文件,也可以用 UltraISO 这个软件直接双击打开,把里面IMAGE文件夹拖出来可作为备用在刷入其他系统时,如果需要插卡使用,将这个文件夹上传到root目录,并将文件夹内的全部文件移动到/lib/firmware文件夹重启后即可使用基带驱动(可见我博客其他文章 debian openwrt)全分区备份进入文件夹 Qualcomm Premium Tool V2.4,开始进行破解操作(音量调小)进入文件夹后,打开 CMD_KEYGEN_CRACKED_by_FACEBOOK破解器,点击GenerateKey生成一个key文件,放到一个位置并记下来。生成完毕后可关闭破解器。打开 Qualcomm Premium Tool 软件,点左上角Help->Activate ,并选择刚刚生成的key文件,即可激活激活完成后,按下图顺序执行全分区备份。如显示Fail无法读取分区,可拔下棒子重新进入9008模式最后一步选择好备份文件夹后,即可开始备份,预计耗时3-5分钟左右,直到左下角显示backup finish后即可结束,关闭工具有备份就有恢复,可以按下图恢复所需的分区备份QCN(可选)注:如果有全量备份和备份modem分区后,该部分可以不用备份开启远程ARDC获取root因为在第二个备份中,我们备份了Boot.img文件,而刷入面具只需要修补这个boot镜像即可获取root,因此我们先想办法让面具安装到棒子内。在环境准备期间,ARDC已经被解压出来,在打开ARDC之前,先打开任务管理器列表是否有 adb.exe 进程存在,如果有,右键停止运行,否则会与ARDC冲突。重新插入棒子,连接为ADB模式,同时打开ARDC,稍等片刻即可看到棒子的安卓界面。此时需要解压 安卓apk 压缩包,将 launcher.apk 拖入,即可进行安装。等待几秒后,按鼠标右键也就是返回键,就可以选择默认桌面了,选择刚刚安装好的launcher桌面可以看出,该系统为安卓4.x的样式,实则确实为安卓4.4.4接着继续安装es文件管理器与magisk,并将备份好的boot.img分区镜像拖入ARDC窗口。使用es文件管理器可以看到,在Downloads文件夹内存放boot.img打开magisk,选择安装,安装方式为修补一个文件,并使用es文件管理器的选择器选择boot.img,开始修补。修补完成后,重新打开es文件管理器,找到修补后的boot,由于面具会随机命名后缀,所以手动重命名为 magiskboot.img (可直接使用键盘输入)。点击ARDC软件上方的 ">>",打开拓展功能,在CMD的输入框内,输入指令 adb pull /sdcard/Download/magiskboot.img ./ 并回车,即可将文件输出到ARDC软件根目录。将该文件手动放到 tools 文件夹内后续刷入使用。此时,还是在CMD输入框内,重新输入指令 adb reboot bootloader 并回车进入fastboot模式。回到一开始进9008时的CMD窗口,输入 fastboot devices 查看设备是否连接成功,如下图输入指令,将修补后的boot刷入进去 fastboot flash boot magiskboot.img ,待刷入完成后执行重启 fastboot reboot执行重启后,回到ARDC软件查看,待显示界面后,右键返回回到launcher桌面,打开面具查看是否安装成功,如下图即为安装成功备份QCN在右侧CMD输入框内,输入指令获取su权限:adb shell su ,并在左侧允许shell获取权限通过权限申请后,开始正式备份QCN。圈子内较多采用星海SVIP软件,但是因为该软件易语言编写,使用卡顿且报毒严重,我这边还是采取QPST备份QCN方式回到一开始的CMD窗口,执行指令adb shell su
setprop sys.usb.config diag,adb即可打开901D端口,同时设备管理器也会出现这个端口名。在开始菜单找到QFIL并打开选择901D端口打开选择上方的Tools->QCN Backup Restore,进入QCB备份恢复的工具。同时在需要备份的位置新建txt文件,更改后缀为 .qcn ,再去工具内选择该文件即可。如需要恢复qcn,需要选择之前备份的qcn文件,点击恢复即可备份完成后预计文件大小有500KB上下。备份结束后,可以关闭这些软件和cmd窗口,之后就可以尽情的折腾了。之后刷机等会依次更新,欢迎关注本博客~
-
群晖强行卸载软件方法
https://www.yanhy.top/index.php/archives/311/
2023-04-01T12:33:00+08:00
如果有套件卡在面板无法加载,比如VideoStation补丁,那可以使用下面强行ssh删除的方法,可直接修复1、打开ssh,连接群晖
2、输入查询sudo find / -name VideoStation3、手动sudo rm -rf 列出的内容4、重新刷新套件商店,即可重新下载安装
-
树莓派4b上手 - 用网线连接电脑与树莓派
https://www.yanhy.top/index.php/archives/145/
2021-11-20T01:56:00+08:00
记录一个小操作,有时候电脑开热点发现连不上,猜测可能是因为5GHZ频段的问题,重新改又太麻烦,刚好手头有网线,干脆用有线来连接树莓派(同方法也适用于其他设备,只需要在电脑配置即可)...适用场景无WiFi网络或者树莓派莫名其妙连不上无线网络稳定快速传输数据对类似设备进行局域网连接配置一些没无线网卡或者无线网卡损坏、异常的设备使用有线网络来配置无线网络传输慢且不稳定材料网线x1USB转网口(可选,适用于笔记本没有网线插口情况)树莓派Windows(其他系统尚未尝试)步骤1、树莓派开机,插上网线,网线另一端连接到电脑2、连接电脑后树莓派网口指示灯会正常闪烁,同时电脑打开设置-网络和Internet-状态-更改适配器选项,会弹出网络连接窗口,里面会显示电脑的全部连接3、如果是同我一样是使用了USB转网口的,直接找到“以太网”开头的连接,并找到含有USB关键词的连接即可确认为来自树莓派的网络。如果是直接连接电脑,直接找最新的连接即可(可重新插拔网线来确认),并记下该连接的名字4、双击打开当前电脑正常上网的网络连接(如图中的WLAN连接),选择属性-共享,勾选允许其他用户通过此计算机的Internet连接来连接,并在下面选框中选择前面记下的来自树莓派的连接名字,再勾选允许其他网络用户控制或禁用共享的Internet连接,最后点击确定即可5、此时树莓派已经得到了共享网络连接,但是如果要去通过ssh连接控制树莓派,仍需要知道树莓派的ip才可以。打开CMD窗口,输入arp -a,在192.168.137.1处查找,如果电脑此时没有分享其他的热点、网络共享的话,一般192.168.137.255之外的那个连接便是树莓派的ip了(在电脑分享出去的网段ip仅限于192.168.137.2-192.168.137.254),图中树莓派的ip为86结尾6、打开ssh连接,输入该ip尝试是否可以连接成功(在此之前请确保ssh已开启)用网线连接时跑了一下软件更新,发现更新速度感觉快多了...(树莓派自带的无线网卡也是够拉胯,平时挂机跑东西都是用六类千兆网线连接的,速度能跑满)注意事项本连接方法并非长久之计,仅用来临时配置树莓派用,如需稳定使用此方法可能还需要配置静态IP等操作,本文不再详解,这篇文章只是记录因为不小心配置错了wifi导致无法ssh的应急操作...
-
[Linux系统] Fedora体验
https://www.yanhy.top/index.php/archives/133/
2021-11-17T07:43:00+08:00
经常为了在linux跑编译去安装虚拟机或者wsl,但其都有共同特征,即虚拟环境...为了更稳定的生产力以及学习linux,我找到了Fedora...前言为搭建个正常的linux环境,我之前曾尝试了debian系的ubuntu、deepin、raspbian(PC版)、kali等,但因为都是同一系列的,总感觉操作有些乏味,于是找上了红帽系的系统,而Fedora正是红帽系广受欢迎的社区发行版系统,因此准备将其安装为第二系统。这个系统使用体验不错,之前在搞服务器的时候用过centos,曾了解过yum软件包管理器等,但红帽系的系统操作还需学习,正好是个机会,写在博客上记录自己从安装双系统到优化fedora的日常使用。安装完成后的截图:安装因为日常开发还是windows系统,因此我选择从win来安装双系统。下载镜像官网链接:https://getfedora.org/因为考虑到可能日用,基本功能要有,所以这边选择工作站workstation版本下载。在下载镜像的同时,打开分区软件(如diskgunius),为Fedora系统腾出一些空间(推荐60-80GB),将腾出的空间融为一块,且不创建新分区(后续Fedroa安装时会自动分配)(此文在fedroa系统下所写,因此无法提供截图)安装镜像下面操作步骤为回忆内容,至于为啥这么熟练,因为第一次分区分小了,重装了N次...下载完毕后我选择使用u盘来安装(手头刚好有闲置u盘,其他的方法暂时不考虑),使用ultraiso将镜像写入到u盘,随后插入u盘,重启电脑,并按住F12不放(华为荣耀笔记本是F12选择启动设备,其他电脑自行查询),选择USB启动即可。进入grub选择页后,直接选择默认的第一条进入即可,会进入到体验版系统,并会弹出系统安装引导软件。选择中文、时区后,第三个选择硬盘需慎重。一般电脑内仅一块硬盘,选择默认硬盘后下方勾选自定义,再点左上角完成,会进入自定义分区页面进入自定义分区页面后,确保下面显示空余空间为几十个GB而不是只有MB大小,如果是MB,可能分区的时候自动创建分区了,在下面列表找到目标分区后点下面的“-”号即可删除分区,小心不要把其他有重要数据的分区或者win系统分区删除了;如果是正常的几十GB,直接选择上面自动分区即可,无需多余操作,最后返回到主页面就可以开始安装系统了。启动系统安装完成后,点击重启后拔出u盘,再次开机会自动引导到linux的grub启动,正常情况下grub启动项前两个分别是正常启动入口和恢复安全紧急模式入口,第三个引导项则是win的启动入口。(在fedora下,引导项无需且严重不推荐手动修改,系统会通过脚本自动找到可启动的linux内核,如果有安装多个版本,可以在系统内卸载旧内核版本,而不应该直接修改grub)系统默认的grub可以说是非常简陋的了,因此在后面优化操作体验的时候会提到修改启动页面主题部门...使用按照我个人的linux使用习惯,一般情况下没有国内优化的系统开箱第一件事就是换源了,不知道是不是错觉,没有换源总感觉装依赖都特别慢...换源更新红帽系系统感觉换源还挺复杂的(之前给centos换源也是头疼了半天),这边就总结一下快捷指令吧,如果有特殊需要请做好备份sudo sed -e 's|^metalink=|#metalink=|g' \
-e 's|^#baseurl=http://download.example/pub/fedora/linux|baseurl=https://mirrors.ustc.edu.cn/fedora|g' \
-i.bak \
/etc/yum.repos.d/fedora.repo \
/etc/yum.repos.d/fedora-modular.repo \
/etc/yum.repos.d/fedora-updates.repo \
/etc/yum.repos.d/fedora-updates-modular.repo中科大源帮助文档:https://mirrors.ustc.edu.cn/help/fedora.html换源后输入sudo dnf makecache即可产生软件包缓存,随后即可yum update(yum、dnf都是软件包管理器)换源后速度明显提升不少(截图来自fedora系统内置截图软件)(圆角好评在这波更新后,浏览器、文件管理区、应用商店等众多软件都需要重新打开以生效新版本(至少我这个系统版本是这样,而且印象里内核还有个更新应用商店打开速度也快了起来,软件包也能加载出来清理缓存、旧内核一般在大型更新后,我是习惯输入sudo yum clean all来清理更新产生的缓存(原因是因为之前翻目录发现缓存cache目录占用特别大,查了一下发现很多软件包缓存),效果如图:在较大更新或者应用商店明示你要更新内核时,更新完经常会留下旧内核,这时候就需要手动清理了(也可以不理会,就是开机引导时会有脚本把全部内核启动项给仍到grub,会显得不好看)查看当前内核版本 uname -r我这里提示版本为“5.14.10-300.fc35.x86_64”查看系统内安装的内核相关包 rpm -qa | grep kernel明显可以看出同一个包(如kernel-core)有两个不同的版本,再根据上面查到的当前内核版本,可以确定要卸载的包:kernel-headers-5.14.9-300.fc35.x86_64
kernel-core-5.14.10-300.fc35.x86_64(旧版本需卸载)
kernel-modules-5.14.10-300.fc35.x86_64(旧版本需卸载)
kernel-5.14.10-300.fc35.x86_64(旧版本需卸载)
libreport-plugin-kerneloops-2.15.2-6.fc35.x86_64
abrt-addon-kerneloops-2.14.6-9.fc35.x86_64
kernel-modules-extra-5.14.10-300.fc35.x86_64(旧版本需卸载)
kernel-core-5.14.17-301.fc35.x86_64
kernel-modules-5.14.17-301.fc35.x86_64
kernel-5.14.17-301.fc35.x86_64
kernel-modules-extra-5.14.17-301.fc35.x86_64接下来,输入 sudo yum remove kernel-5.14.10-300.fc35.x86_64等手动移除这四个旧版本即可(-core可能无法移除,可重启后尝试)最后输入reboot重启即可结束至此,fedora已经安装完毕,且软件包等更新完成,可正常使用。想要了解更多玩法,欢迎继续关注本博客!
-
Termux——安卓终端快速入门
https://www.yanhy.top/index.php/archives/98/
2021-09-13T19:59:00+08:00
为了学习linux,很多时候都是选择装个虚拟机,或者买个服务器来练习linux操作。除了使用wsl或者虚拟机之外,还有一个更便携的linux终端,那便是安卓上的Termux...软件介绍Termux这个软件,可以说是安卓上的linux虚拟机,又不完全是个虚拟机。据官方文档介绍:Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager.”“Termux 是一个Android 终端模拟器和 Linux 环境应用程序,无需 root 或设置即可直接运行。自动安装最小的基本系统 - 使用 APT 包管理器可以使用其他包。”在安卓系统本身环境下,Termux得到了很好的运行优势,无需额外虚拟化操作即可使用linux操作界面。在使用过程中,只需要像Debian系一样操作即可,你可以使用pkg安装软件包,也可以更换为apt软件包管理器等等。它可以运行很多Arm及Arm64的项目,比如nodejs、python、java等等。Termux可以用来运行脚本、编译小型项目、学习linux系统操作而不会轻易影响主系统等。准备工具一部安卓手机(性能、配置不限,储存大于4g,有root权限最好)Google Play应用商店科学上网工具开始安装下载termux首先启用科学上网环境,打开Google Play应用商店搜索Termux(该版本较低,可以去F-Droid或者gothub下载),下载安装,安装后打开(期间保持科学网络环境)也可以去github下载:https://github.com/termux/termux-app/actions/找到最新构建的版本,选择对应版本下载打开后会加载几秒钟,随后会进入初始界面(如下图),此时可以关闭科学上网环境使用前非常重要的一步:给Termux换源,并更新软件包。步骤如下:在较新版本中,官方提供了图形化界面换源方式,可以快速更换,缺点是源站固定无法修改,日常足够使用图形化换源界面如图所示在Termux中输入指令 termux-change-repo 并回车,将会进入需要更换的。库列表一般换源只需要更换主仓库(Main repository)即可,空格可以选择取消选择要更换的仓库,默认主仓库是被选择状态选择后直接回车,进入选择镜像源列表。使用“↓”移动并用空格选择到BFSU源,然后回车即可更换并触发update。这个是国内的北京外国语大学开源软件镜像站,在软件更新、安装时速度会快上不少。在运行update时可能会报错,因为部分软件包可能未收录原因,但也可以正常使用。如果有特殊需要或者强迫症等,可以参考下面的手动换源到其他源。也可以手动修改文件来替换源站推荐清华源(复制执行):
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
清华源手动修改文件:
执行 apt edit-sources
将文件内第二行deb及后面文件删除
粘贴 deb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main
中科大源:
sed -i 's@packages.termux.org@mirrors.ustc.edu.cn/termux@' $PREFIX/etc/apt/sources.list手动更换源后可以输入 pkg up 或者 apt update && apt upgrade来更新软件包,有时候会提示是否安装更新(y/n),推荐选择默认选项,如下图默认选项为N,如果有需要的话可以自行决定。更新过程较长且耗费较多流量,建议wifi下更新常用软件安装到了这一步,Termux本身已经配置完成了,你可以在termux上练习使用linux操作,也可以在上面安装相关环境来部署一些小项目。如果手机有root,可以执行sudo权限,需要先安装sudo包:pkg install tsu脚本编程环境软件包:nodejs、python,推荐使用独立配置环境方法,当然如果没有特殊需求也可以直接使用apt install python或者apt install node,执行后输入y即可安装。经测试,从apt安装的版本中,nodejs版本为14.15.4;python版本为3.9.7也可以在终端里面安装java环境,可以参考我之前博客写的树莓派安装java教程,同为arm架构,安装过程大同小异。如果喜欢折腾,甚至可以在termux安装xfce4桌面,然后通过配置vnc来远程连接termux的可视化桌面当然,也可以在termux配置静态博客hexo,一方面可以当做本地服务器,浏览器访问127.0.0.1即可访问自己的网站;另一方面,也可以在本地折腾好后打包到服务器。termux可以直接ssh连接到安装linux系统的服务器。连接方式:ssh root@10.111.111.111 其中,root@表示使用root用户连接到服务器。优化termux使用termux我个人认为并非是独立的虚拟机,还是基于安卓系统操作。因此如果需要termux与系统进行文件交互,并非是难事,创建个软连接即可。(有root权限的用户还可以直接去根目录找termux内系统的/目录)首先开启termux访问手机存储的权限termux-setup-storage,然后手机会弹窗是否授权termux访问储存权限,点击确认软链接相对于文件夹的快捷方式,创建在termux的home目录,便于访问,同时也可以用文件管理器去修改文件夹内容。先用文件管理器在储存主目录创建文件夹为share(可自行修改),然后打开终端,输入ln -s /storage/emulated/0/share share即可在home目录创建share文件夹,指向主目录的share文件夹。同时,授权了储存访问权限后会在home目录生成 storage 文件夹,可以通过这个文件夹访问到几个基本文件夹,如download等在termux启动时会显示welcome to Termux! 欢迎信息,可以手动编辑nano $PREFIX/etc/motd来修改启动信息可以使用Termux-ohmyzsh来美化终端,安装sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)" 由于github访问速度不定,可能下载较慢第一次打开脚本时会列出可调整的颜色、字体,可以随意选择一个,后续要更改颜色与字体,可以输入~/.termux/colors.sh修改颜色或者~/.termux/fonts.sh修改字体其他美化脚本推荐:bash
-
记录一次简单的C语言考试
https://www.yanhy.top/index.php/archives/70/
2021-06-17T19:09:00+08:00
很快啊,就期末考试了...简单记录一下这次C语言考试的内容,以供后来参考...Program 1:定义一个函数,用于实现两个int类型数据的求和功能,并将求和结果返回给调用者。在主函数中分别以变量作实参、常量作实参调用此求和函数#include<stdio.h>
int sum(int a,int b)
{
int c;
c=a+b;
return c;
}
int main()
{
int x,y,s=0;
scanf("%d%d",&x,&y);
s=sum(x,y);
printf("%d",s);
return 0;
} Program 2:编程实现:输出100~300之间不能被3整除的数,每行显示5个数。#include<stdio.h>
int main()
{
int i,j,a;
for(i=100;i<=300;i++)
{
if(i%3!=0)
{
printf("%d ",i);
a=(a+1)%5;
if(a==0)
{
printf("\n");
}
}
}
return 0;
}Program 3:编程实现:已知arr数组中有n个无序整数,请对arr数组进行降序排序,然后输出结果。#include<stdio.h>
int main()
{
int arr[999]={0},n,temp;
scanf("%d",&n);//题目没有指定长度,手动输入一个长度
for(int i=0;i<n;i++)//输入数组
{
scanf("%d",&arr[i]);
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(arr[j]<arr[j+1])//冒泡降序
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0;i<n;i++)//输出数组
{
printf("%d ",arr[i]);
}
return 0;
}