
算法c
数字漫游者
持续发力ing
展开
-
NWAFU-OJ(基础)29.数字字符个数统计函数设计
数字字符个数统计函数设计设计一个函数,统计任意一串字符中数字字符的个数,并在主函数中调用此函数。将字符串传入函数中,在函数内统计输入数字的字符的个数。字符串中数字字符的个数。原创 2023-07-28 09:35:18 · 295 阅读 · 0 评论 -
NWAFU-OJ(基础)28.整数交换函数设计
在函数中实现整数交换即可。需要注意,如果函数中传入的是整数,函数调用结束后,函数中所有局部变量都被销毁,所以无法达到预期效果。这时候传入指针,通过对地址进行操作是比较常用的方法。设计一个函数,将任意2个整数交换,并在主函数中调用此函数。用指针来实现就好啦!原创 2023-07-28 09:22:37 · 273 阅读 · 0 评论 -
NWAFU-OJ(基础)23.猴子吃桃问题
第一天吃了这堆桃子的一半,觉得不过瘾,又多吃了一个,第2天接着吃了前一天剩下的一半,再多吃了一个,以后每天如此,经过N天后,只剩下1个桃子。若已知N的值,问最初这堆桃子共有多少只?① 从最后一天的x=1个,倒推出前一天的个数x,表达式可写为x=2(x+1)② 将该表达式作为循环9次的循环体,并在该语句处设置断点,进行观察即可。用函数实现递归,递归返回的最终条件是当x=1时,返回1。吃到只剩下1个桃子所需要的天数N。本题是典型的递归问题。最初这堆桃子的数目。原创 2023-07-28 08:56:41 · 220 阅读 · 1 评论 -
NWAFU-OJ(基础)27.用指针实现子字符串提取
用指针实现:由键盘输入一串字符,从下标为m的字符开始,取出n个字符(m和n由键盘输入),形成一个新的字符串。2.循环遍历原来的字符串,找到要求的位置p,然后从这个地方开始把后面所需的n个字符串取到另外一个数组中。从下标为m的字符开始,取出n个字符(m和n由键盘输入),形成一个新的字符串。1.设置两个数组,一个用来存放原来的字符串,一个存放取出的字符。原创 2023-07-28 08:51:03 · 225 阅读 · 0 评论 -
NWAFU-OJ(基础)25.图形输出
我们会发现第二个数字输入几,最终图形就输出几行。而每一行加上空格总共有2*n-1个字符,知道了这个规律后就可以开始写代码了。首先要明确题目的要求,用输入的字符来绘制图形,而不是所有的图形都用*。要显示的构成图形的字符和行数。原创 2023-07-28 08:32:44 · 214 阅读 · 0 评论 -
NWAFU-OJ(基础)26.用指针实现查找二维数组中最大数及其位置
先假设最大数及其位置是在第0行,第0列的位置,然后遍历数组中的每一个元素,要是比0位置的要大,就替换我们的结果,更新所设的三个变量:最大值max,最大值的行坐标r,最大值的列坐标l。用指针实现:找出二维数组(设3行4列)中的最大数及其位置。二维数组(设3行4列)。原创 2023-07-28 08:28:51 · 737 阅读 · 0 评论 -
NWAFU-OJ(基础)24.求两个数的最大公约数和最小公倍数
求最大公约数可用辗转相除法:rem=a%b;若rem=0,a是最大公约数,程序结束;否则重新执行以上语句。设b和b的最大公约数为Div,最小公倍数为Multi=a*b/Div;用辗转相除法(即欧几里得算法)求两个正整数的最大公约数和最小公倍数。两个正整数的最大公约数和最小公倍数。原创 2023-07-28 08:55:58 · 176 阅读 · 0 评论 -
NWAFU-(OJ)22.爱因斯坦阶梯问题
设有一阶梯,每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶;每步跨7阶,正好到阶梯顶。问满足条件的最少阶梯数是多少。① 设一个变量x作为循环控制变量也代表阶梯数,让其从1开始每次增1,用while循环。循环体内必须有能使x发生变化的语句,且可在该语句处设置断点,进行观察。② 判断x何时满足所有给定条件,此时的x即为所求阶梯数。原创 2023-07-28 08:55:21 · 263 阅读 · 0 评论 -
NWAFU-OJ(基础)21.数据统计
先设置四个变量并进行初始化(养成良好习惯),然后输入n个整数,遍历输入的n个整数,然后用这四个变量分别存储结果,最后再进行一次输出。任意输入n个整数,分别统计奇数的和、奇数的个数、偶数的和、偶数的个数。奇数的和、奇数的个数、偶数的和、偶数的个数。原创 2023-07-28 08:54:26 · 183 阅读 · 0 评论 -
NWAFU-OJ(基础)13.矩形对角线元素求和
循环遍历,判断坐标关系,用两个变量分别记录主、辅对角线之和。输入一个5×5的数组,分别求其主对角线和辅对角线上元素之和。行坐标i+列坐标j=n-1(就是4)。主对角线和辅对角线上元素之和。原创 2023-07-24 12:29:02 · 395 阅读 · 0 评论 -
NWAFU-OJ(基础)15.字符个数统计
由键盘输入任意一串字符串,将其存入一个字符数组,统计其中的大写字母、小写字母、数字以及其他字符的个数。1.用四个变量分别存储大写字母、小写字母、数字以及其他字符的个数,记得初始化。大写字母、小写字母、数字以及其他字符的个数。2.输入字符数组后,循环遍历每一个字符元素,如果是大写字母,count1++;如果是小写字母,count2++;如果是其他字符,count4++;如果是数字,count3++;原创 2023-07-24 12:27:11 · 197 阅读 · 1 评论 -
NWAFU-OJ(基础)18.用指针实现排序
这是一个排序问题,我们可以创建一个数组,然后利用函数(可以是自己编写,也可以是系统自带的)来进行排序。用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列。将他们按由小到大的顺序排列。由键盘输入10个整数。原创 2023-07-24 12:25:26 · 233 阅读 · 0 评论 -
NWAFU-OJ(基础)19.用指针实现字符串排序
④ 用strcmp函数比较两个指针数组元素的值(注意判定条件是如果strcmp(p[j],p[j+1])>0)然后才交换)、用strcpy函数交换两个指针数组元素的值。用指针实现:将10个字符串(设其长度小于20)从小到大排序.② 用循环使指针数组的元素指向二维字符数组各行首;① 定义二维字符数组和指向该数组的指针数组;③ 用循环为指针数组元素赋字符串为值;排序后的10个字符串。原创 2023-07-24 12:24:50 · 649 阅读 · 0 评论 -
NWAFU-OJ(基础)20.数据倒置
用指针实现:将具有10个元素的一维数组中的数据倒置。原创 2023-07-24 12:24:13 · 258 阅读 · 2 评论 -
NWAFU-OJ(基础)17.输出杨辉三角
① 杨辉三角形的特点:第一列和对角线上的元素值均为1,即a[i][0]=a[i][i]=1,所以可以先初始化为1的部分;如第三行第二列2就是第二行第一列+第二行第二列,计算公式为a[i][j]=a[i-1][j-1]+ a[i-1][j]。② 其余位置元素的值=上一行本列元素值+上一行前一列元素值,打印如下形式的杨辉三角形。原创 2023-07-24 12:26:17 · 157 阅读 · 0 评论 -
NWAFU-OJ(基础)16.姓名排序
a代表排序数组的首地址,n代表元素个数,sizeof(a[0])代表每个元素的所占字节数,cmp为自定义的比较函数。需要注意的是 这里对字符串不能直接进行赋值,需要用到strcpy(a,b)将b字符数组中的字符拷贝给a。由键盘任意输入10个学生的姓名(以拼音形式),将它们按照ASCⅡ码的顺序从小到大排序。利用stdlib库中的qsort函数,不清楚其排序过程的也可看视频链接。基本的冒泡排序必须会写。不会写的请参考我的视频链接。按照ASCⅡ码的顺序从小到大排序。10个学生的姓名(以拼音形式)。原创 2023-07-24 12:26:41 · 402 阅读 · 0 评论 -
NWAFU-OJ(基础)14.数据顺序调整
在循环中将其它元素逐一与d2比较,若比d2小,将其存入d2,并将其下标存入x2,这个过程结束后d2存放最小值,x2存放最小值的下标。③ 在循环中将其它元素逐一与d1比较,若比d1大,将其存入d1,并将其下标存入x1,这个过程结束后d1存放最大值,x1存放最大值的下标。② 在循环开始前,将第一个元素作为参考,将其值分别存入d1、d2,将其下标分别存入x1、x2;① 定义四个变量d1、d2、x1、x2,分别存放最大数、最小数及它们的位置;由键盘任意输入10个数,将最大数调到最前面,最小数调到最后面。原创 2023-07-24 12:28:07 · 336 阅读 · 0 评论 -
NWAFU-OJ(基础)12.简单加密程序
取余操作常用于字符的循环,例如假设a字符的ascii码值是32,想要前33个字符构成一个循环,a向右移动两个位置,要求还在循环里,这时候a的下标就要变成(a+2)%33=1 (循环中下标从0开始)3.c-'a'+2后变成了26,显然不在我们的循环中,所以进行取余(c-'a'+2)%26,结果为0,就对应这0位置的字符的下标,就是字符a,由键盘任意输入一串字符,对其进行加密,加密原则为:如果为字母,将其循环右移2个字母,其他字符保持不变。对应代码:‘c-'a' (c-'A') c表示字符变量,原创 2023-07-24 12:30:43 · 626 阅读 · 0 评论 -
NWAFU-OJ(基础)11.字符串连接
就从a字符串结束的位置,就是a中下标为strlen(a)的位置,用j来存储a开始遍历的位置,即j=strlen(a);接着让b中的元素赋值给a,就可以写成a[j++]=b[i]。也就是把b的,每个元素赋给a后面,用一个循环(for(i=0;i++)),b[i]就是取出b中的每一个元素。然后开始赋值到a后面。由键盘任意输入两串字符,不用库函数strcat,连接将两串字符。2.将b字串的内容逐个拿出,赋值到a数组的后面。1.用两个字符数组来存储两个子串,记作a,b。原创 2023-07-24 12:31:38 · 292 阅读 · 0 评论 -
NWAFU-OJ(基础)10.按从大到小排序三个数
③ 最后再将b、c进行比较,把较大的存入b中、小的存入c中,即完成排序。printf("排序前:%d, %d, %d\n", a, b, c);printf("排序后:%d, %d, %d\n", a, b, c);② 然后将a、c进行比较,把大的存入a中、小的存入c中;① 先将a、b进行比较,把大的存入a中、小的存入b中;按从大到小进行排序后的三个数。排序前:3, 4, 5。排序后:5, 4, 3。排序前:3, 4, 5。排序后:5, 4, 3。原创 2023-07-21 11:27:37 · 290 阅读 · 2 评论 -
NWAFU-OJ(基础)9.判断是否能构成一个三角形
2.若三条边分别用a、b、c表示,则判断条件可写为:a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a。从键盘输三个数,判断是否能将它们作为三角形的三条边构成一个三角形。若能,输出“Yes”,否则,输出“No”。/*由键盘输入3个数*/1.构成三角形的条件为:三条边全为正数,且满足任意两条边之和大于第三边。“Yes”或“No”。原创 2023-07-21 10:49:53 · 1054 阅读 · 1 评论 -
NWAFU-OJ(基础)8.利用海伦公式求三角形面积
在程序设计时,包含在math库中的sqrt(k)函数用来返回数k开根号后的结果,返回结果类型是浮点数。2.用几个变量来存储数据,先判断能不能构成三角形,如果不能,直接输出,结束程序;记三角形的三条边长度分别为a,b,c;三角形的面积是:6.000000。三角形的面积是:6.000000。原创 2023-07-21 10:27:08 · 262 阅读 · 1 评论 -
NWAFU-OJ(基础)7.字符转换
整数类型包含整形和字符型,由ASCII码值我们知道,每一个字符对应一个整数值,所以两个类型不分家!但要注意存储它们的数据类型所占字节不一样。输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;不要改变与输入输出有关的语句。如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;也可实现读取一个字符。本题中涉及到简单控制结构,需要我们进行判断。getchar()可以实现读取一个字符。如果 不是大写是小写。原创 2023-07-21 09:57:25 · 328 阅读 · 2 评论 -
NWAFU-OJ(基础)6.成绩判断
输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。不要改变与输入输出有关的语句。2、条件判断,数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”;3、输出“Pass”的语句为:printf("Pass\n");4、输出“Fail”的语句为:printf("Fail\n");1、输入语句为:scanf("%f",&mark);本题涉及到简单循环结构的代码编写。if,else后面都没有冒号!“Pass”或“Fail”原创 2023-07-21 09:34:37 · 326 阅读 · 1 评论 -
NWAFU-OJ(基础)5.数据类型长度测试
sizeof运算符可以计算出数据类型所占的字节数,通过sizeof运算符实现,计算结果是一个整形数据。编写程序,测试所使用的计算机系统字符型、短整型、整形、长整型、单精度实型、双精度实型所占有的字节数量。计算机系统字符型、短整型、整形、长整型、单精度实型、双精度实型所占有的字节数量。这不是一个函数,而是一个表达式!原创 2023-07-21 09:23:23 · 188 阅读 · 1 评论 -
NWAFU-OJ(基础)4.输出字符对应的ASCII码
3、在C语言中,字符型变量的值既可用字符形式也可以整数形式输出。当以字符形式输出时输出的是原字符,而以整数形式输出时输出的就是该字符的ASCII码值。我们输入的字符都对应一个ASCII码值,比如a(92),@(64)...1.26个字母中大写字母的ASCII值<小写字母的ASCII值,相差32。2.常见的字符的ASCII值要记下来:a(97),A(65)1、输入任意一个字符,需定义一个字符变量:char c;任意输入一个字符,输出此字符对应的ASCII码。4、输出:printf("%d\n",c);原创 2023-07-21 09:11:11 · 4531 阅读 · 1 评论 -
NWAFU-OJ(基础)3.计算梯形面积
当a/b中,a和b其中有一个数是浮点数时,比如b是浮点数,C语法就会对a进行默认类型转换,让a也变成浮点数,可以理解为即1/2.0变成1.0/2.0,则能正常计算出结果。② 求梯形面积的公式为:面积=(上底+下底)×高/2,即area = ((supline+dowline)*high)/2.0;当a和b都是整数类型时(1和2),相除结果向下取整,本来应该是0.5,但是要向下取整,所以结果就变成了0。已知梯形的上底、下底和高,计算梯形的面积。梯形的上底、下底和高。原创 2023-07-21 08:54:56 · 466 阅读 · 1 评论