- 博客(60)
- 收藏
- 关注

原创 C语言| 数组的折半查找
3 此时a[2]=87,而key > a[2]=87,说明256在87的右边,则往右边查找。high = mid-1 = 2, 更新mid =(low+high)/2=1。low = mid+1, 更新mid=(low+high)/2,high不变。high = mid-1,更新mid=(low+high)/2,low不变。low = mid+1 =2, 更新mid =(low+high)/2=2。low = mid+1=4, 更新mid=(low+high)/2=5;
2024-06-22 16:35:45
1481

原创 JSP技术实现用户登录
一、实验目的:1. 掌握JSP语法;2. 了解JSP生命周期;3. 掌握JSP请求转发和包含。二、实验内容:1. 创建login.jsp页面,其有用户名,密码及对应的文本框;2. 创建ControlLogin.java类,验证用户名和密码是否正确,如果用户名等于自己的学号,密码等于123456,则跳转到index.jsp页面,并显示欢迎用户名您好,否则显示登录失败。三、软硬件环境:jdk1.8,t...
2018-05-26 18:23:25
12183
3
原创 C语言|判断是否为素数
2 库函数名都是小写,自定义函数名最好以大写字母开头,多个单词组成,每个单词的首字母全部大写,必要时用下划线间隔;1 和变量命名规则一样,都是字母、数字、下划线的组合,而且不能以数字开头,通常以字母开头。//执行到这步,该数不能被整除,说明它是素数。ii 大于2的数字,先判断是否为偶数(2之后的偶数一定不是素数)int Prime(int x) //Prime是素数的英文单词。1 输入一个数num,num
2025-01-15 17:16:55
372
原创 C语言| 求两个整数的最小值
/对Min函数的声明,x,y为形参。return (z);//返回z的值给主调函数使用。//函数体中的声明部分。//定义Min函数,x y 为形参。在VC++6.0中的输出结果为。//主函数,有且只有一个。
2025-01-15 16:46:56
275
原创 C语言| 函数声明、函数的返回值
ii (同一个文件中)被调函数的位置在主调函数的后面,在主调函数中,一定要把函数声明放在调用位置之前;(1)(库函数)必须在程序开头用#include命令引用某个库函数的头文件,才可以对它调用,无需再声明。一个函数可以有多个return语句,执行到哪个return语句,哪个return语句才起作用。把函数声明写在程序开头#include的下面,后续多个主调函数就可以不用声明了。返回值类型的被调函数,必须包含return语句,return后面要有返回值。i 被调函数在主调函数前面,无需函数声明;
2025-01-15 16:43:52
237
原创 C语言| 无参函数、有参函数、形参、实参
只有函数被调用,才会给形参分配内存空间,调用结束后释放形参的空间。3 实参可以是常量、变量、表达式,必须要有确定的数值,在调用其他函数时把实参的值赋给形参。ii 一般情况下,有参函数在执行被调函数时会得到一个值,并返回给主调函数使用。i 在执行被调函数时,形参的值并不会改变主调函数实参的值。主调函数main(),调用其他函数另设的参数,叫做实参。i 被调用时,主调函数通过参数向被调函数传递数据。i 被调用时,主调函数没有向被调函数传递数据。函数分两类:无参函数、有参函数。形参是自定义的函数使用的参数。
2025-01-15 16:40:46
240
原创 C语言| 二维数组的应用II
条件2 其他位置上的数字都是它“上面那个数字”和“左上那个数字”之和。if语句 条件1 (j==0) || (i==j),令数组元素等于1。int count;//给输出空格缩进时的计数。//只给数组赋值一半,条件为j<=i。2 用for循环给数组赋值,内嵌一个if语句赋值。3 用for循环输出数组,内嵌2个for循环输出。//空格进行缩进用for循环。选择性输出,只输出 i>=j 的元素。可以采取边赋值边输出的方式,优化程序。//用for循环给数组赋值。//用for循环输出数组。
2025-01-15 16:20:38
368
原创 C语言|二维数组的应用 I
2 其他位置上的数字都是它“上面那个数字”和“左上那个数字”之和。- 左对齐,3 是三个空格,加上后面的\x20就是四个空格。直角三角形的杨辉三角,用二维数组a[i][j]来存放。3 选择性输出,只输出 i>=j 的元素。4 数字之间的空格,放在printf里面。二维数组的应用:杨辉三角(直角三角形)1 j==0 和 i==j都是1。//用for循环给数组赋值。//用for循环输出数组。在VC++6.0中的输出结果为。
2025-01-15 15:30:08
313
原创 C语言| 二维数组的使用
2 举例 int a[3][3]={{11,22,33}, {44,55,66}, {77,88,99}};// 输出元素占3个空格。1 在计算机内存是一维的,在内存中先顺序存放第一行元素,再存放第二行元素,以此类推进行存储。数组元素只能一个一个的输出引用,二维数组要用2个for循环嵌套输出元素。ii a[0], a[1], a[2] 为一维数组的名字。2 把所有数据都写在一个{}里面,按数组的排列顺序赋初值{i 看作有3个元素,每个元素都是一个长度为3的一维数组。
2025-01-15 15:07:28
295
原创 C语言| 二维数组的定义
元素名字依次是:a[0][0],a[0][1],a[0][2];a[1][0],a[1][1],a[1][2]举例 int a[2][3];3 数组int a[m][n]最大范围处的元素是a[m-1][n-1].5 int a[2][3];a[1][2] 则对应一个具体的元素,下标指明它具体的位置。2 元素a[i][j]表示第i+1行、第j+1行元素。看作数组a中有2个元素,每个元素长度是3的一维数组,a[0]和a[1]分别是这2个一维数组的数组名。举例 int a[2][3];
2025-01-03 16:13:15
400
原创 C语言| 冒泡排序-从大到小-
每轮中第n次比较是新序列中第n个元素和第n+1个元素的比较(假如n从1开始)。4 for循环,一共比较n-1轮,每轮比较n-1-i次,所以内嵌一个for循环。内嵌的for循环,放置if语句,如果a[j]<a[j+1],互换这两个数。所以排序了多少次,就有多少数字已经按照排序规则排好了,它们不需要再比较了。//a[0]是int型,占4字节,所以总字节数除以4等于元素的个数。2 i比较的轮数 j每轮比较的次数 temp交换数据的中间变量。每次比较一轮,就会找到序列中最大的一个元素或者最小的元素。
2024-06-25 14:38:04
1277
原创 C语言| 数组元素的删除
/找到了要删除的元素位置,用b[i] = a[i+1];数组元素的删除,是先删除元素,再把后面的元素往前移动一位,而本程序代码是直接覆盖被删除元素的值。//数组下标从0开始,a[9]表示数组a长度为9,有9个元素为a[0]~a[8]数组元素的插入,是先移动要插入元素位置后面的所有元素,再插入新元素,长度+1。//循环变量i的值小于index时,数组元素原样输出。//设一个新数组,用来存放删除元素后。//要删除元素的下标。//用for循环,输出删除元素后的数组。
2024-06-23 17:29:47
1432
2
原创 C语言| 数组的插入
if数组的最大下标i < index,说明插入元素的位置在数组中不存在,系统随机分配一个垃圾值。else if 数组的最大下标i == index,说明把新元素插入到数组最后面,无需移动位置。else 数组最大下标i > index,说明要把插入新元素位置后面的每一个元素往后移动一位,//用来存放插入数字后的新数组,因为插入一个数,长度为10。1 定义数组a,数组b存放插入元素后的数组,下标index 值num 循环变量i。printf("请输入插入值的下标:");//for循环,输出插入元素后的新数组。
2024-06-23 17:09:25
1599
原创 C语言| 数组的顺序查找
/求出数组中所有元素的个数。printf("下标 = %d\n", i);1 定义变量 数组a,n表示数组的个数, m要查找的数字。查找数组a中第一次出现数字m的下标,并输出该下标;5 遍历完整个数组,都没有找到m,输出sorry。//存放数组a中元素的个数。2 用sizeof()函数,求出数组元素的个数。printf("请输入一个数字:");3 从键盘中任意输出一个数字m,进行查找。如果没有则输出sorry。找到了m,输出其下标。
2024-06-22 14:21:01
544
原创 C语言| 数组倒置II
printf("数组倒置后的结果为a[%d] = %d\n", i, a[i]);printf("数组倒置后为a[%d] = %d\n", i, a[i]);printf("数组a[%d] = %d\n", i, a[i]);//循环变量2, j的值表示数组的最后一个元素下标。//循环变量,i表示数组下标,从0开始。// 表示数组的第一个元素的下标。//表示数组的最后元素一个下标。//数组元素的输出需要for循环。数组元素个数为奇数,最中间的元素不变。//数组倒置,互换算法。//输出倒置后的数组。
2024-06-22 13:42:05
547
原创 C语言| 数组倒置算法
printf("数组a[%d]倒置后为%d\n", i, b[j]);printf("数组a倒置后为%d\n", b[i]);2 用for循环,把数组a的最后一个数,赋值给数组b第一个元素。printf("请输入10个整数,给数组初始化:");//把数组a最后一个元素,赋值给数组b第一个元素。1 定义两个数组a[5] b[5],两个循环变量i j。//从键盘给数组赋值初始化,用for循环。
2024-06-22 13:03:20
522
原创 C语言| 宏定义
这是固定格式,一般放在#include <stdio.h>后面,标识符是临时的符号,预处理之后就不存在了。//scanf中,double只能用%lf。宏所表示的常量可以是数字、字符、字符串、表达式。其中最常用的是数字。宏定义最大的好处是方便修改常量,标识符一般都是用大写字母表示。放在哪个位置,就表示前面宏定义的常量到此结束,不能再引用了。#undef 后面的标识符和宏定义的标识符是一样的。printf("请输入%d个数:", j);printf("请输入圆的半径:");
2024-06-22 12:32:55
297
原创 C语言|十进制数转换任意进制数
/得到下一次除2取余的数,直到m=0退出循环结束。//因为除2取余,最后要把结果倒过来才是二进制数,所以从后往前输出。//除2得到的余数,放到数组a中。就是m不断地除以2,写下每一次除完的余数,能整除就是0,不能就是1。2 for循环,把余数从后往前输入,输出数组a[i],得到二进制数。printf("您想将输入的十进制数转换成几进制:");1 定义一个数组a[100],先归0,再存放运算过程中的余数。//又因为i最后多加了一次,所以从i-1开始。1 while循环,表示十进制除2取余数的过程,
2024-06-14 16:32:09
744
原创 C语言| 找出数组里最小数,并指出位置
/因为跟个数有关,所以是cnt。4 假设第一个数a[0]为最小数,再用for循环,一个个对比判断得到最小数。printf("请输入%d个整数,以空格隔开:", cnt);//min 初始化为第一个元素。1 键盘输入n个整数,需要变量cnt来计算个数,数组存放数字。//存储最小数的下标。实现输入n个整数,输出其中最小的数,并指出它是第几个数。//存储输入数的个数。printf("您想输入几个数:");//数组初始化,给数组赋值用for循环。//从第二个元素开始比较。
2024-06-14 15:28:56
1741
原创 C语言| 编程获取数组的长度
这样不管数组是增加还是减少元素,sizeof(a) /sizeof(a[0])都能自动求出数组的长度。printf("数组b的长度cnt = %d\n", cnt);字符串中有一个strlen()函数可以求出字符数组中字符串的长度。用sizeof也可以获得整个数组在内存中所占的字节数。总的字节数除以一个元素所占的字节数就是数组的总长度。
2024-06-13 16:46:24
563
原创 C语言| 数组
printf("请输入5个整数:");数组的下标从0开始,下标又表示数组的长度。直接定义一个数组,并给所有元素赋值。在VC++6.0中的输出结果为。需要通过键盘给数组赋值。
2024-06-13 16:04:55
367
原创 C语言| 回文数字
⑤ sum=sum*10+m%10 即sum=2343*10 +2=23432,然后m /=10,即m=0。④ sum=sum*10+m%10 即sum=234*10 +3=2343,然后m /=10,即m=2。③ sum=sum*10+m%10 即sum=23*10 +4=234,然后m /=10,即m=23。② sum=sum*10+m%10 即sum=2*10 +3=23,然后m /=10,即m=234。① sum=sum*10+m%10 即sum=0 +2=2,然后m /=10,即m=2343。
2024-06-11 15:52:52
396
原创 C语言| 斐波那契数列又称黄金分割数列
1 定义变量,项数n, 第n项f3, 循环变量i, 第n-1项f2 和 第n-2项f1。斐波那契数列又称黄金分割数列:0, 1, 1, 2, 3, 5, 8, 13,int f1, f2;//分别为第n-2项和第n-1项。5 从第4项的数开始,f3= f1+f2, 所以用i=3循环。printf("请输入您想要求的项数:");程序的功能是输出“斐波那契数列”第n项的值。//斐波那契数列的项数。//初值为第2项的值。//初值为第3项的值。4 最后一个else里面放入for循环。2 提示用户输入项数的语句。
2024-06-11 15:31:52
504
原创 C语言| 计算1+2+3+4+…+100之和
printf("1+2+3+4+…+100之和为:%d", sum);两者没有什么大的区别,for循环和while循环可以互相替换。用while循环,进行计算1+2+3+4+…while循环,定义变量,再赋值变量,才可以使用。计算1+2+3+4+…+100之和的程序。for循环,逻辑性更强,用的更多。死循环,用while(1)更方便。while和for循环的区别。while(表达式)
2024-06-05 15:24:20
803
原创 C语言| 小写字母金字塔
/ch[i]存放的是26个小写字母,ch[j]存放的是截止到用户输入的字母。只有这样,才能提高自己上机的能力,每个人的理解都不一样,出错的地方也不一样。printf("根据您的输入,以下是程序为您输出的字母金字塔:\n");for循环---打印降序小写字母,j<i-1,降序输出ch[i-j-2]//判断用户输入的合理性,因为不止判断一次,所以用while循环语句。printf("您输入的内容有误,请重新输入:");//定义最大的小写字母,来判断总行数。//判断用户输入的小写字母,来判断行数n。
2024-06-04 16:23:58
566
原创 C语言 | 输出26个大写字母
利用for循环和ASCII码进行大写字母的输出。//因为i从1开始,所以要减1。//为了分行输出结果。输出控制符不同,运行的结果也不同。
2024-06-03 20:41:15
2106
原创 C语言| 字母金字塔
/难点就是找到i-j-2的规律。3 第一个for循环,i为遍历字母的循环变量,把26个字母按顺序放入数组中ch[i] = 'A'+i;ii for --- 控制升序打印字母, j<i字母在第几个位置,按顺序打印字母。iii for --- 控制降序打印字母,j<i-1,降序输出ch[i-j-2]//n代表输出的行数,或者说最大字母是26个字母中的第几个字母。//第三个内嵌for循环,控制降序打印字母,比升序少一个,所以-1。2 升序输出的字母的个数==行数==最大字母在26个英文字母中排的位置序号。
2024-06-03 20:25:10
2187
原创 C语言| 输出菱形*(梳理篇II)
星号*为等差数列,公差为-2,an=a1+(n-1)*d,所以第i行的星号为{n-2}+(i-1)* -2== {n-2i}个。下三角形的首行* == 上三角形倒数第二行 == 对称行的前一行 == 2*{(n+1)/2 -1}-1 == {n-2}个。星号*为等差数列,公差为2,an=a1+(n-1)*d ,所以第i行的星号为1+(i-1)*2= {2*i-1}个。//上面的三角形,包含对称行,行数==(n+1)/2。3 下三角形 行数==上三角行数-1=(n+1)/2 -1。//定义行数的循环变量。
2024-06-03 16:00:07
1446
原创 C语言| 输出*三角形
当遇到N的情况,不知道如何下手,可以先给N赋一个值,从具体的事物开始分析,最后会得到抽象的结果。③ 从每行输出的星号个数来看,每行输出星号的个数是一个首项为1、公差为2的等差数列,即输出空格和输出星号,要将它们分开,不用考虑空格数和星号个数之间的关系。//行循环变量i,空格和星号循环变量。//对每一行,将左边的空格加上星星,就是图形。//行数由用户输入的n决定。② 从每行输出的空格个数来看,若。星号右边的空格不用考虑。即第i行要输入的星号个数为。考虑星号和星号左边的空格。④ 编程时我们只需要。
2024-05-31 16:41:31
1866
原创 C语言| 求1到100之间奇数的平均值.
最后直接求平均数average = 1.0*sum / count;最后直接求平均数average = 1.0*sum / count;设置变量i =1,每次加2,求奇数,并相加,计算奇数的个数。直接遍历100个数字,用 i% == 1来判断是不是奇数。//直接计算奇数之和,和奇数的个数,再求平均值。i 是奇数,每次相加,并计算个数。求1到100之间奇数的平均值.在VC++6.0的运算结果为。
2024-05-31 16:32:33
590
原创 C语言| 三个整数从小到大排序
printf("这三个整数从小到大排序为:num1 = %d, num2 = %d, num3 = %d\n", num1, num2, num3);这三个整数从小到大排序为:num1 = 33, num2 = 45, num3 = 66。这三个整数从小到大排序为:num1 = 33, num2 = 88, num3 = 99。这三个整数从小到大排序为:num1 = 22, num2 = 33, num3 = 88。//如果num1比num2大,那么交换num1, num2;以此类推,直到比完了所有的数。
2024-05-31 16:27:28
2974
原创 C语言| for嵌套循环
printf("我超爱看《蜡笔小新》的说。printf("哎呦,没有你说的那么好啦!//外循环先输出一遍,再输出下面两个for循环,再接着循环。不管是一个for循环,还是多个for循环嵌套,运行操作顺序都是一样的。printf("可喜可贺!//外层大循环for()在VC++6.0中的输出结果为。我超爱看《蜡笔小新》的说。哎呦,没有你说的那么好啦!哎呦,没有你说的那么好啦!哎呦,没有你说的那么好啦!我超爱看《蜡笔小新》的说。哎呦,没有你说的那么好啦!哎呦,没有你说的那么好啦!哎呦,没有你说的那么好啦!
2024-05-31 16:26:16
496
3
原创 C语言| 求出1!+2!+3!+…+n!的和。
i++) // 第一个for循环--每次循环把阶乘相加到sum中。j++) // 第二个for循环--求每一个数的阶乘。//求完之后就立马把它加到sum中。int m = 1;//用于计算每个数的阶乘。int n = 0;printf("请输入n的值:");
2024-05-31 16:24:44
916
原创 C语言| 100元购买100只鸡
(100 == gj*5+mj*3+xj/3) 公鸡 母鸡 小鸡 分别乘自己的价格,加起来要等于100元。(xj%3 == 0) 小鸡的数量除完3的结果要等于一个整数,余数为0。1 先算出100元分别可以购买多少只公鸡 母鸡 小鸡,得到变量的限制范围。现在给你100元,要你买回100只鸡,求出公鸡、母鸡、小鸡分别为多少只。2 多层嵌套for 循环,小鸡的数量为 xj = 100-gj-mj;两个条件要同时成立,用到与&&假设公鸡5元一只,母鸡3元一只,小鸡1元3只,3 最中间放入判断语句,包含两个条件。
2024-05-31 16:23:34
2464
原创 C语言| switch语句 电梯开门楼层
printf("该楼层不存在,请重新输入\n");printf("1层开!printf("2层开!printf("3层开!printf("请输入您想去的楼层:");switch语句,break可以跳出case。
2024-05-31 16:17:43
224
原创 C语言| 100元换成50元、20元、10元有几种方案?
用50元、20元和10元换算100元有 0张50元,0张20元,10张10元。用50元、20元和10元换算100元有 0张50元,4张20元,2张10元。用50元、20元和10元换算100元有 0张50元,5张20元,0张10元。用50元、20元和10元换算100元有 1张50元,0张20元,5张10元。用50元、20元和10元换算100元有 1张50元,2张20元,1张10元。用50元、20元和10元换算100元有 2张50元,0张20元,0张10元。求出用50元、20元和10元换算100元有几种方式?
2024-05-31 16:15:38
673
原创 C语言| 输出1~1000之间所有的完全平方数。
如果num开根号,再通过num*num==i,来判断是否是完全平方数。//通过num*num==i来判断是否是完全平方数。//如果num不是完全平方数,开完根号肯定是小数。利用for 循环,在1000个数字里面直接找num。for循环遍历,直接用 i*i 来得到完全平方数。//存储每个数的二次根。利用sqrt()函数,来判断是否是完全平方数。输出1~1000之间所有的完全平方数。
2024-05-31 16:13:57
610
原创 C语言| 组成不能重复数字的三位数
求出1、2、3、4四个数字能组成多少个互不相同且无重复数字的三位数?=b放在循环体最中间。思路:个位 十位 百位 的取值范围小于5。循环体结构不难,难的是判断条件。且这三个位置不能取相同的数字。
2024-05-31 16:09:34
501
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人